0

(正当な理由で) メモリを割り当て、いくつかのコードをコピーし、mprotect() を使用して実行権限を付与し、そのコードを呼び出す C プログラムがあります。はい、これが移植性がなく安全でないことはわかっていますが、それには十分な理由があります。とにかく、アセンブリ コードを (si コマンドを使用して) gdb でシングル ステップする必要がありますが、それはできません。「選択したフレームのプログラム カウンタを含む関数はありません」

gdb にこのコードを強制的に実行させる方法はありますか? このタイプのものの代わりに使用する必要がある別のデバッガーはありますか?

ありがとう!

4

3 に答える 3

1

add-symbol-file', oradd-symbol-file-from-memory 'コマンドを使用して、そのメモリ位置にコピーされたコードについてgdbに知らせたいようです。

于 2011-06-09T05:28:45.167 に答える
1

/display/i $pcを開始する前にを使用して、コードをたどることができるはずです。これは、毎回プロンプトを出力する直前に、現在の命令の逆アセンブリを表示するように指示します。sistepi

于 2011-06-11T18:36:38.127 に答える
0

stepiコマンド自体はシンボルを必要とせず、説明したシナリオで問題なく動作するはずです(ただし、実際に動作するかどうかは確認していません)。

あなたの問題は本当にありstepiますか?デバッグ セッションの関連部分を表示すると、質問がより適切な回答につながる可能性があります。

于 2011-06-08T22:12:19.287 に答える