私はGDB/MI用のラッパーを書いていますが、私はMIインターフェースでいくつかのコマンドを見逃しています。たとえば、 'info variables'コマンドです。私は "-interpreter-exec console"でそれを実行することができますが、コンソールレコードにはすべてを書き込み、結果レコードには書き込まないので、出力を得るのは難しいです。だから私はプロンプト( "(gdb)"行)と "^ done"レコードの間ですべてのコンソールレコードを取り出し、連結して結果として返すことにしました。私の質問は - これは安全ですか?このアプローチはエラーが起こりやすいと思われますが、他には何も考えていません。アイデア?GDB/MIで-interpreter-execの出力を取得する方法は?
UPDATE: また、この-interpreter-exec console "python\nprint(gdb.execute('info variables', False, True))\n"
のようなのpythonを使用すると便利かもしれないとの結果がいいです1行に表示されますが、まだどのように私は無事、まさにこの行を得るのですか?たぶん私はいくつかのトークンを前もって置いておくべきです...とにかく、gdb.execute
の3番目の引数は一般的にはサポートされていないようですので、それに頼るのは良い考えではないかもしれません。