我正在运行一个 C++ 代码,它接受来自用户的文件作为输入以及包含包含文件的目录。我的 C++ 代码在某些输入文件上运行得非常好,但是在某些例外情况下它会产生分段错误。现在我无法追溯分段错误。我正在使用 ddd 调试器来调试这个问题。我已经尝试了 ddd 中的所有内容。转储它的核心,然后使用核心来追溯代码。我实际上得到了导致错误的 lne,但是这个错误在其他地方填充.
在搜索更多相关信息以解决分段错误时,我通过本教程简要说明了使用 objdump 来跟踪分段错误。我运行以下命令
objdump -CDl ./binary file . output file
,
但是这个命令持续了将近 15 分钟,当我试图找出导致错误的指针时(指针是通过 ddd 和 dmesg | tail 命令找到的)。
我很困惑我的代码现在不会产生任何错误,因为错误是由于输入文件造成的。意味着我的代码无法通过该输入文件的特定部分。
所以我只是通过使用 objdump 运行我的代码二进制文件来找到导致错误的指针
grep -n -A 100 -b 100 ./mydump
需要帮助