我实现了使用mmap()
系统调用的程序,但是分段故障在过程运行时发生。
所以,我用 gdb 运行了此程序,但是当我这样做时,它运行良好而没有片段故障。
我想知道使用GDB运行是否可能影响段故障。你能告诉我吗?
如果有可能使用GDB运行可能会影响细分故障。
一种可能性:GDB禁用地址随机化(以使复制错误更容易(。您可以通过以下方式重新启用它:
(gdb) set disable-randomization off
gdb也可能会影响线程的时间安排,但您没有提及线程,所以这可能较小。
您可能正在调用代码中某处违反C或C 规则的不确定行为。尝试在Valgrind下运行该程序。如果是这种情况,它应该为您提供更多信息。