Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在Linux服务器上检查分段错误的原因_C_Linux - Fatal编程技术网

C 在Linux服务器上检查分段错误的原因

C 在Linux服务器上检查分段错误的原因,c,linux,C,Linux,我在远程服务器上部署了一个用C语言编写的Linux脚本,多个客户端可以连接到该脚本。由于某种原因,脚本崩溃,当我尝试重新启动它时,我遇到了分段错误。是否有任何方法可以在服务器端检查是什么阻止了我的脚本启动,并引发了分段错误。通过启用核心转储开始: $ ulimit -c unlimited 现在运行脚本,直到它出现故障。这将在您的工作目录中创建一个核心转储文件 接下来,使用GDB(或其任何前端)对其进行调试(请注意,如果无法在服务器上进行调试,则可以将文件复制到本地计算机): 如果很容易重现问

我在远程服务器上部署了一个用C语言编写的Linux脚本,多个客户端可以连接到该脚本。由于某种原因,脚本崩溃,当我尝试重新启动它时,我遇到了分段错误。是否有任何方法可以在服务器端检查是什么阻止了我的脚本启动,并引发了分段错误。

通过启用核心转储开始:

$ ulimit -c unlimited
现在运行脚本,直到它出现故障。这将在您的工作目录中创建一个核心转储文件

接下来,使用GDB(或其任何前端)对其进行调试(请注意,如果无法在服务器上进行调试,则可以将文件复制到本地计算机):

如果很容易重现问题,并且如果您可以直接在服务器上进行调试(使用SSH或类似工具),则只需深入并使用附加的调试器启动流程:

$ gdb my-prog

允许服务器创建,然后复制该文件并与调试器一起使用。什么是符号文件及其用途?@Asusgates GDB使用该文件了解函数、变量等的名称,在程序引用的某些内存地址。@Asusgates可能还需要指出的是,最好使用
-g
GCC标志编译代码。
GDB>
表示在GDB外壳内,您可以使用命令
GDB
GDB> file my-prog
$ gdb my-prog