我写了一个C ++程序。它调用libhdfs提供的一些函数(用于C ++的HDFS API,用JNI实现),并且在正常执行时运行正常。当我使用gdb启动程序并输入run
命令时。程序无法运行,我在gdb上下文中收到以下错误消息:
[Thread debugging using libthread_db enabled]
[New Thread 0x40100940 (LWP 18482)]
[New Thread 0x40201940 (LWP 18483)]
...
[New Thread 0x41514940 (LWP 18502)]
Program received signal SIGSEGV, Segmentation fault.
0x00002aaaac26c862 in ?? ()
我在gdb上下文中使用命令shell echo $CLASSPATH
。它显示了正确的HDFS相关环境。
我使用Google和StackOverflow进行了搜索。但我没有任何想法。
任何提示?
答案 0 :(得分:2)
Why does java app crash in gdb but runs normally in real life?提供了解决方案:
handle SIGSEGV nostop noprint pass
虽然,它并不那么优雅。