11

私は gdb の使い方を独学で学んでおり、いくつかのランダム テストを実行しています。Windows 7 x64 で MinGW のポータブル インストールを使用していることに言及する価値があるかもしれません。スタックオーバーフローが発生することがわかっているプログラムを作成しました.gdbで実行すると、最初に2つの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終了コードを 8 進形式で出力します。明らかではありませんが、先頭の0.

16進数0300000003750xC00000FD同様で、Windows プログラマーにとってコードがより一般的に見えるようになります。

0xC00000FDでありSTATUS_STACK_OVERFLOW、 で定義する必要がありますntstatus.h

于 2012-07-09T14:44:10.627 に答える