私はARMチップ上で動作する組み込みソフトウェアをデバッグするためのpythonスクリプトを書いています。pythonとpygdbmiライブラリを使ってGDBを実行する方法を中断する方法
これを行うには、pygdbmi pythonライブラリを使用します。このライブラリは私のスクリプトを設定し起動することができますが、見つけられない機能が1つあります。プログラムの実行を中断する方法が見つけられません。
私はグローバル変数の値などをチェックするためにそれを一時停止する前に、ある一定の時間(1秒と言いましょう)デバッグするソフトウェアを実行したいと思います。これを実行するには、gdbに "continue" 1秒間スリープし、最後に "-exec-interrupt"を送信してプログラムを中断し、gdbに新しいコマンドを送信します。
は、だから、私ようだ:私はこのPythonスクリプトを実行すると
gdbmi = GdbController("arm-none-eabi-gdb")
# swPath is the path to my software binary
gdbmi.write('-file-exec-and-symbols %s' % swPath)
# I have to connect to an openOCD server
gdbmi.write('tar rem :3333')
gdbmi.write('monitor reset halt')
gdbmi.write('load')
gdbmi.write('c')
time.sleep(1)
gdbmi.write('-exec-interrupt')
、私は次のようなエラーが発生している:ここで
は、私がそのために使用するソースコードの一部でありますデバッグされたソフトウェアが実行されているときにgdbに新しいコマンドを書き込むことはできません。ソフトウェアを一時停止するにはどうすればよいですか?私がGDBを手動で使用するときは、Ctrl-Cシグナル(SIGINT)を送ることでこれを行います。これはPythonからも同じことをしたいのです。