实际崩溃中的函数参数与核心转储之间存在差异

Bar*_*lom 8 c++ linux gdb coredump

我正在调查SIGSEGV使用gdb.这是附加到正在运行的进程崩溃的gdb所见的最后一个堆栈框架:

#0 0x08d1805c in FooBar (this=0xa9315578, dt=0.100000001)
Run Code Online (Sandbox Code Playgroud)

那时,我已经使用了状态generate-core-file.当我用gdb检查这个转储时,相同的堆栈框架显示:

#0 0x08d1805c in FooBar (this=0x0, dt=2.69049305e-42)
Run Code Online (Sandbox Code Playgroud)

这让我很困惑.在一方面,该值0.1用于dt在现场的情况是有道理的.在另一方面,this是0x0,如在转储,将很好地解释SIGSEGV.

更重要的是,怎么会出现差异?