C 在Linux服务器上检查分段错误的原因
我在远程服务器上部署了一个用C语言编写的Linux脚本,多个客户端可以连接到该脚本。由于某种原因,脚本崩溃,当我尝试重新启动它时,我遇到了分段错误。是否有任何方法可以在服务器端检查是什么阻止了我的脚本启动,并引发了分段错误。通过启用核心转储开始:C 在Linux服务器上检查分段错误的原因,c,linux,C,Linux,我在远程服务器上部署了一个用C语言编写的Linux脚本,多个客户端可以连接到该脚本。由于某种原因,脚本崩溃,当我尝试重新启动它时,我遇到了分段错误。是否有任何方法可以在服务器端检查是什么阻止了我的脚本启动,并引发了分段错误。通过启用核心转储开始: $ ulimit -c unlimited 现在运行脚本,直到它出现故障。这将在您的工作目录中创建一个核心转储文件 接下来,使用GDB(或其任何前端)对其进行调试(请注意,如果无法在服务器上进行调试,则可以将文件复制到本地计算机): 如果很容易重现问
$ ulimit -c unlimited
现在运行脚本,直到它出现故障。这将在您的工作目录中创建一个核心转储文件
接下来,使用GDB(或其任何前端)对其进行调试(请注意,如果无法在服务器上进行调试,则可以将文件复制到本地计算机):
如果很容易重现问题,并且如果您可以直接在服务器上进行调试(使用SSH或类似工具),则只需深入并使用附加的调试器启动流程:
$ gdb my-prog
允许服务器创建,然后复制该文件并与调试器一起使用。什么是符号文件及其用途?@Asusgates GDB使用该文件了解函数、变量等的名称,在程序引用的某些内存地址。@Asusgates可能还需要指出的是,最好使用
-g
GCC标志编译代码。GDB>
表示在GDB外壳内,您可以使用命令GDB
GDB> file my-prog
$ gdb my-prog