从gdb Linux启动时进程转储

时间:2017-10-10 07:31:25

标签: c linux gdb

我有一大段代码,其中包含一些网络操作,我无法将其粘贴到此处。

我的问题是当我用gdb启动时,它会在进程启动时显示seg错误。但是当我在没有gdb的情况下运行它时,它会继续运行,并且在某个随机时间它会出现故障。可能是什么原因?肯定会有一些内存损坏吗?

1 个答案:

答案 0 :(得分:0)

GDB内部流程立即崩溃的一个可能原因是GDB禁用了地址空间随机化ASLR

您可以在gdb中重新启用ASLR,如下所示:

(gdb) set disable-randomization off
(gdb) run

您可以在GDB之外禁用ASLR,如下所示:

setarch x86_64 -R ./a.out ...

或者您可以像这样禁用ASLR系统:

sudo -c "echo 0 > /proc/sys/kernel/randomize_va_space"
  

肯定有一些内存损坏吗?

肯定存在某个错误。无论是内存损坏还是其他一些错误都取决于 进程崩溃的原因,而且您还没有告诉我们任何相关的细节。< / p>