0
私はエコーなどの他のコマンドにフックしてみましたが、うまくいきます。しかし、xコマンドをフックすると、失敗します。ここに私の.gdbinitファイルのコードがあります。gdbのコマンドxにどのようにフックできますか?
set $pince_injection_failed = 1
set $pince_debugging_mode = 0
define hook-x
if $pince_injection_failed = 1
echo asdf
end
define hookpost-x
if $pince_debugging_mode = 0
echo zxcv
end
gdbはフックする関数のエイリアスを受け入れないことを知っています。しかし、xはすでに完全な関数ですか?私はそれのための別名を見つけることができませんでした。私はそれについても疑問に思っています。単一の文字がコマンドのために短すぎるためです。
'フック-X 'およびGDB 7.7.1で私のために' hookpost-X'仕事の終わりに行方不明
end
。どのバージョンでこの問題が起こっていますか?修正された古いバージョンのバグかもしれません。また、 '$ pince_debugging_mode = 0'が常にfalseになることに注意してください。おそらく '$ pince_debugging_mode == 0'が必要です。 'if'を終了させる' end'ステートメントがないと、コマンドが機能しなくなる可能性もあります。 –私のバージョンは7.7.1です。私はちょうど.gdbinitファイルを使用する代わりにgdbセッションで 'define hook-x'を実行しようとしました! .gdbinitファイルで何が間違っている可能性がありますか? 編集:ああ、また、if文の先端 EDIT2の感謝:私はこのようgdbinitの最小限のバージョンを書き込もうとしました: は '定義フック-X は1 end' をエコーそしてそれはまた、 – Desertricker
ができ動作しませんでした.gdbinitファイルの最初の行と最後の行に 'echo'コマンドを追加して、gdbがそれを読み込んでいるかどうかを確認します。 –