【发布时间】:2026-01-19 13:25:01
【问题描述】:
我正在构建以前工作的代码,但我遇到了一个段错误,我不知道出了什么问题。 gdb 捕捉到错误,但它没有指出明显的原因。它显示的源代码行是一个函数名称,因此它甚至没有进入函数。如果我查看指令的反汇编,它仍在设置堆栈,所以堆栈可能被搞砸了。那么我应该如何调试呢?这是在 QNX 6.2 中,仅限控制台 gdb。
0x0816b829 in __ml (this=0x79b963c, anMultiplier=0) at ../u_matrix.cpp:56
56 tcMatrix tcMatrix::operator*(float64 anMultiplier)
0x816b820 <__ml>: push %ebp
0x816b821 <__ml+1>: mov %esp,%ebp
0x816b823 <__ml+3>: sub $0x13ac,%esp
0x816b829 <__ml+9>: push %edi
0x816b82a <__ml+10>: push %esi
0x816b82b <__ml+11>: push %ebx
【问题讨论】: