标签: c++ debugging gdb segmentation-fault
如何调试分段错误?
基本上就是这样:
我在后台运行我的服务器:./server &
./server &
然后我运行我的客户端:./client
./client
当我尝试登录我的服务器时,使用正确的用户名和密码,一切正常,但是当我输入无效的用户名和密码时,会导致分段错误。
如何使编译器/调试器能够输出实际看到的导致分段核心转储的错误。
我知道gdb,但我尝试使用gdb客户端,但似乎没有用。
答案 0 :(得分:5)
分段错误的一个好主意是使用valgrind运行程序进行调试。这样,您将经常获得有关导致细分错误的更多详细信息。例如,它会告诉您是否正在读取未初始化的内存。
valgrind
答案 1 :(得分:4)
如果您正在使用g ++,请首先使用-g选项编译您的程序。然后使用
gdb name_of_program core
在你获得的核心转储上运行gdb(name_of_program是你刚用g ++构建的可执行文件的名称)。 此链接对于如何使用gdb非常有用。
name_of_program
http://www.ibm.com/developerworks/library/l-gdb/
答案 2 :(得分:-1)
this广告对代码的注释。只有当你有很多函数调用并且你不知道调用路径时它才有用。