【问题标题】:How to debug a segmentation fault如何调试分段错误
【发布时间】:2023-03-23 21:26:01
【问题描述】:

如何调试分段错误?

基本上是这样的:

我在后台运行我的服务器:./server &

然后我运行我的客户端:./client

当我尝试使用正确的用户名和密码登录我的服务器时,一切正常,但是当我输入无效的用户名和密码时,会导致分段错误。

如何使编译器/调试器能够输出它实际看到的导致分段核心转储的错误。

我知道 gdb,但我尝试使用 gdb 客户端,但它似乎不起作用。

【问题讨论】:

  • 可能会发布关于您在 gdb 中遇到的问题的问题
  • 请注意,问号用于提问(与句号相反)。

标签: c++ debugging gdb segmentation-fault


【解决方案1】:

分段错误的一个好主意是使用valgrind 运行程序进行调试。这样,您通常会获得有关导致分段错误的原因的更详细信息。例如,它会告诉您是否正在从未初始化的内存中读取。

【讨论】:

    【解决方案2】:

    如果您使用 g++,请首先使用 -g 选项编译您的程序。然后使用

     gdb name_of_program core 
    

    在您获得的核心转储上运行 gdb(name_of_program 是您刚刚使用 g++ 构建的可执行文件的名称)。 此链接对如何使用 gdb 很有用。

    http://www.ibm.com/developerworks/library/l-gdb/

    【讨论】:

      【解决方案3】:

      this 向代码添加注释。只有当您有很多函数调用并且您不知道调用路径时,它才有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-07
        • 2013-01-06
        • 2013-05-19
        • 2012-01-06
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        相关资源
        最近更新 更多