0

関数に渡された変数の値が、関数から戻った後に null になっています。変数はスタックにプッシュされ、同じものを返すときにポップされます。犯人のスレッドを見つける方法はありますか? そのスタックの場所を保護できますか? 私はアセンブリをチェックしましたが、スタックを変更する可能性のある rbp へのオフセットが表示されませんか?

push   %rbp
mov    %rsp,%rbp
push   %rbx

.....................



add    $0x8,%rsp
pop    %rbx
leaveq
4

2 に答える 2

1

オペレーティングシステムは、メモリをいじる他のプロセスからプロセスを保護する必要があると思います。プログラム内でメモリが破損していないことは確かですか? 複数のスレッドがありますか?これらは、別の不正なプロセスよりも犯人である可能性が高くなります。

于 2012-08-26T20:02:42.313 に答える
1

プログラムを通常どおりにデバッグするだけです。あなたは物事を必要以上に難しくしようとしています。

于 2012-08-27T05:09:23.910 に答える