我正在构建以前工作的代码,但我遇到了段错误,我无法弄清楚出了什么问题。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