我的程序正在使用libhdfs.so进行hdfs读/写,我想为调试设置一个断点,但是当这个程序运行到hdfsConnect时,它会退出并出现分段错误。
有趣的是,当我正常运行程序时,根本不会发生分段错误。可能的根本原因是什么?调试libhdfs.so时是否应该设置一些运行时环境?
答案 0 :(得分:1)
原来是一个JNI问题而不是libhdfs.so具体问题,解决方案可以在这里找到: Strange sigsegv while calling java code from c++ through jni
答案 1 :(得分:0)
可能是根本原因?
可能的根本原因是你的程序中存在一个错误,它在GDB下表现为崩溃,但在GDB之外运行时仍然是隐藏的。
这使得问题更容易调试:相反(GDB之外的崩溃,在GDB下运行)通常更难。
你的第一步应该是在Valgrind下运行程序并确保它是干净的。