windbgの関数から戻り値を取得する方法は?
-
06-07-2019 - |
質問
ハンドルを返すCreatethreadのようないくつかのwin32APIをデバッグしようとしています。 windbgで戻り値を取得する方法は?
調査を行った結果、戻り値は通常EAxレジスタに保存されていることがわかりました。
CreateThreadにブレークポイントを設定すると、Createthreadのアセンブリにステップインでき、最終的にはretステートメントがヒットします。つまり、Createthreadが返されます。
この時点で、ハンドル値を取得するためにEAXレジスタの値を確認する必要がありますか、それとも他の方法ですか?
解決
eaxのテストと基本的に同じではない別の方法はありません。
つまらないものにしたい場合:
eaxは32ビットで正常に動作します。
raxは64ビットアプリに必要なものです
ret0はitaniumが使用するものです
$ retregは、使用可能な擬似レジスタであり、すべての場合に適切に動作します。
e.g。
0:028> r rax rax=00000000fff02000 0:028> r eax eax=fff02000 0:028> r $retreg $retreg=00000000fff02000
所属していません StackOverflow