当前位置: 首页 > 面试题库 >

如何在Linux上使用GDB调试Java -JNI?

陆博易
2023-03-14
问题内容

任何人都可以指导如何使用GDB调试器在Linux上调试JNI代码(如果可能,请提出其他选择)。

    -My JNI project when running on Linux is leading to a JVM crash.
    -The CPP code has been compiled into .so files.
    -I run the project like  this : *java xyz.jar -commandline_args_to_project*.

我已经安装了Gdb,但是没有得到如何使用它调试项目的信息。我是否还需要使用-g选项t debug .so文件来编译.cpp文件?


问题答案:
  1. 启动您的Java应用程序
  2. 使用top,ps,…查找pid
  3. 使用此pid启动gdb
  4. 附加程序代码
  5. 像往常一样使用gdb进行调试

这篇博客文章解释了整个过程。



 类似资料:
  • 问题内容: 我是内核开发的新手,我想知道如何使用QEMU和gdb运行/调试Linux内核。我实际上正在阅读罗伯特·洛夫(Robert Love)的书,但不幸的是,它没有帮助读者了解如何安装适当的工具来运行或调试内核。因此,我要做的是遵循本教程http://opensourceforu.efytimes.com / 2011/02 / kernel-development-debugging-usi

  • 开发程序过程中调试代码是开发者经常要做的一件事情,Go语言不像PHP、Python等动态语言,只要修改不需要编译就可以直接输出,而且可以动态的在运行环境下打印数据。当然Go语言也可以通过Println之类的打印数据来调试,但是每次都需要重新编译,这是一件相当麻烦的事情。我们知道在Python中有pdb/ipdb之类的工具调试,Javascript也有类似工具,这些工具都能够动态的显示变量信息,单步

  • 我正在使用VS代码来调试使用Windows Subsystem for Linux的'C'代码。我基本上想用一个基于linux的编译器来编译“C”代码,用于操作系统的课程。我已将Visual Studio代码上的默认终端设置为“wsl”。单击debug按钮时,我会得到以下错误“无法开始调试”。miDebuggerPath的值无效“我验证了'gdb'安装在Windows Subsystem for

  • 问题内容: 我是Visual Studio用户,习惯于调试断点。我现在在Linux环境中工作,并且正在使用Eclipse作为IDE。我是linux和eclipse的新手。我不知道如何在Eclipse中使用gdb。我尝试在命令行中使用gdb,但它并不像拥有UI那样容易。 如何在Eclipse中使用gdb? 问题答案: 以下说明适用于Eclipse 3.5(Galileo)。对于3.6(Helios)

  • *:使用 GDB 调试可以方便观察 rCore 运行过程,但不属于教程要求 GDB 需要支持 riscv64 架构才能够对 rCore 进行 debug。 运行 gdb --configuration 来查看本地的 GDB 支持什么架构,其中 --target 参数指定了它可以 debug 的架构 如果 gdb 不支持,可以按照下面的步骤来安装 riscv64-unknown-elf-gdb 安装

  • 问题内容: 我们有一个使用OpenSSL的Python绑定的Linux应用程序,我怀疑它会导致随机崩溃。有时,我们会看到它崩溃并显示以下消息: Python致命错误:GC对象已被跟踪 这似乎是库方面的编程错误,或者是内存损坏的症状。给定一个核心文件,有什么办法知道它执行的最后一行Python源代码?还是如果它附加在GDB中?我意识到这可能是所有已编译的字节码,但是我希望那里有人解决了这个问题。当前