11

我正在自学使用 gdb 并正在运行一些随机测试。值得一提的是,我在 Windows 7 x64 上使用便携式 MinGW 安装。我创建了一个我知道会导致堆栈溢出的程序,当我在 gdb 中运行它时,我首先得到两个 SIGSEGV 信号(毫不奇怪),然后它以代码 030000000375 退出(同样毫不奇怪)。

Program received signal SIGSEGV, Segmentation fault.
Program received signal SIGSEGV, Segmentation fault.
Program exited with code 030000000375.

好奇心占了上风……那代码到底是什么?我用谷歌搜索,发现很少。

谢谢!

更新:作为参考,我在 Ubuntu 上尝试了相同的程序,结果略有不同:

Program received signal SIGSEGV, Segmentation fault.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
4

1 回答 1

11

gdb以八进制格式打印出退出代码。不明显,但由前导指示0

030000000375十六进制也是如此0xC00000FD,这使得代码对于 Windows 程序员来说看起来更常见。

0xC00000FDSTATUS_STACK_OVERFLOW并且应该在 中定义ntstatus.h

于 2012-07-09T14:44:10.627 回答