0

我的程序正在使用 libhdfs.so 进行 hdfs 读/写,我想设置一个断点进行调试,但是当这个程序运行到 hdfsConnect 点时,它会因分段错误而退出。

有趣的是,当我正常运行程序时,根本不会发生分段错误。

可能的根本原因是什么?在调试 libhdfs.so 时我应该设置一些运行时环境吗?

4

2 回答 2

1

事实证明这是一个 JNI 问题,而不是 libhdfs.so 特定问题,可以在这里找到解决方案: Strange sigsegv while call java code from c++ through jni

于 2013-04-16T06:28:28.633 回答
0

可能的根本原因是什么?

可能的根本原因是程序中的错误,它在 GDB 下表现为崩溃,但在 GDB 之外运行时仍然隐藏。

这使得问题更容易调试:相反(在 GDB 之外崩溃,在 GDB 下工作)通常更难。

你的第一步应该是在 Valgrind 下运行程序并确保它是干净的。

于 2013-04-15T15:10:23.313 回答