我的程序使用libhdfs.so对于hdfs read/write,我想设置一个断点进行调试,但是当这个程序运行到hdfsconnect点时,它会以分段错误退出。有趣的是,当我正常运行程序时,分段错误根本不会发生。根本原因可能是什么?在调试libhdfs.so时,是否应该设置一些运行时环境?
368yc8dk1#
根本原因可能是什么?可能的根本原因是程序中的一个bug,它在gdb下表现为崩溃,但在gdb之外运行时仍然隐藏。这使得问题更容易调试:相反的(在gdb之外崩溃,在gdb下工作)通常更难。你的第一步应该是在valgrind下运行程序并确保它是干净的。
vojdkbi02#
这是一个jni问题,而不是一个libhdfs问题。所以具体的问题,可以在这里找到解决方案:通过jni从c++调用java代码时出现奇怪的sigsegv
2条答案
按热度按时间368yc8dk1#
根本原因可能是什么?
可能的根本原因是程序中的一个bug,它在gdb下表现为崩溃,但在gdb之外运行时仍然隐藏。
这使得问题更容易调试:相反的(在gdb之外崩溃,在gdb下工作)通常更难。
你的第一步应该是在valgrind下运行程序并确保它是干净的。
vojdkbi02#
这是一个jni问题,而不是一个libhdfs问题。所以具体的问题,可以在这里找到解决方案:通过jni从c++调用java代码时出现奇怪的sigsegv