問題タブ [ddd-debugger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ブーストによって公開された Python と C++ を一緒にデバッグする
を使用して Python コードをデバッグできますddd -pydb prog.py
。すべての python コマンド ライン引数は、 の後に渡すこともできますprog.py
。私の場合、多くのクラスが C++ で実装されており、それらは を使用して Python に公開されていboost-python
ます。Python コードと C++ を一緒にデバッグできたらいいのにと思います。たとえば、次のようなブレークポイントを設定したい:
もちろん、デバッグ オプションを使用して C++ コードをコンパイルした後に試していますが、デバッガーはブースト境界を越えません。何か方法はありますか?
編集: http://www.boost.org/doc/libs/1_61_0/libs/python/doc/html/faq/how_do_i_debug_my_python_extensi.htmlを見ました。私はそれに従いました.PythonとC ++の両方のデバッグを行うことができます. しかし、できれば視覚的なデバッグを行いたいのですがDDD
、内部で「target exec python」コマンドを実行する方法がわかりませんDDD
。そうでない場合(gdb
リンクのように使用するだけ)、リンクのようにPythonコマンドをインタラクティブに提供しないPythonスクリプトをデバッグできるはずです。
python - DDD (または gdb) を使用して Python をデバッグ中に C++ コードにステップ インする方法
テストの例として、boost を使用して Python にエクスポートしたこのテスト C++ クラスがあります (boost の Web サイトから)。
このコードをコンパイルしてg++ -g -shared -o hello.so -fPIC hello.cpp -lboost_python -lpython2.7 -I/usr/local/include/python2.7
、問題なくテストしました。テスト スクリプトpp1.py
は次のようになります。
このコードは、対話モードでもスクリプトとしても正常に実行されます。
ビジュアル デバッグに DDD を使用しています。コマンドddd -pydb pp1.py
を実行すると、Python コードのデバッグを実行できます。デバッガー内にいるときは、next
コマンドを実行して結果を確認できます。しかし、デバッガーがたとえば 3 行目にある場合、step
コマンドを実行すると、C++ コードに入らない行を渡すだけです。どうすればこれを機能させることができますか?(私はgdbだけで試しましたが、同じです.c ++コードに入っていません。)
debugging - DDD デバッガー (pydb モード) ですべてのブレークポイントを一度に無効にする方法
ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.htmlで説明されているように、gdb を使用してブレークポイントを無効にすることができます。ドキュメントでは、すべてのブレークポイントを無効にするにはdisalbe
、ブレークポイント リストなしで提供するように指示されています。しかし、私の ddd(data-display-debuger) では動作しません。どうすればいいですか?または、どのように範囲を指定できますか? (1-10 を試しましたが、うまくいきませんでした)。
編集:コマンドを使用してpythonデバッグにDDDを使用してddd -pydb prog.py arg1 arg2..
いたので、実際にはgdbコマンドではなくpydbコマンドでした。回答についてはコメントを参照してください。後で、pydb の場合、delete
引数を指定しないでコマンドを実行すると、すべてのブレークポイントが削除されることがわかりました。すべてのブレークポイントを無効にするには、gdb.py を変更して以下のコメントを参照する必要があります。
c++ - DDD: 文字列 "-*-helvetica-medium-r-*-230-*-iso8859-*" を FontStruct 型に変換できません
DDD 3.3.12 を使用して C/C++ をデバッグしています。OS 情報は次のとおりです。
RHEL6.0-2012-x86_64
Red Hat Enterprise Linux Workstation リリース 6.3
DDD を開始すると、次のように表示されます。
警告: 文字列 "- -helvetica-medium-r- - - -230- - - - -iso8859- " を FontStruct 型に変換できません。 : 文字列 "- -helvetica-medium-r- - - -200- - - - -iso8859- " を FontStruct 型に変換できません 警告: 文字列 "- -helvetica-bold-r- - - -230- - - -を変換できません-iso8859- " を FontStruct 型に変換 警告: 文字列を変換できません "- -helvetica- medium- - - - -230- -- - -iso8859- " を FontStruct 型に変換 警告: 文字列 "- -helvetica-bold- - - - -230- - - - -iso8859- " を FontStruct 型に変換できません 警告: 文字列 "- -helvetica-bold-r を変換できません- - - -340- - - - -iso8859- " を FontStruct 型に変換 警告: 文字列 "- -symbol- - - - - -230- - - - -adobe-*" を FontStruct 型に変換できません
私が試した後
「編集 -> 環境設定 -> 一般 -> X 警告を非表示」!
それらの警告は消えました。
以前DDDのフォントを変更しました。これらの警告を回避するにはどうすればよいですか? フォントをデフォルトに変更しますか?
gdb - gdb を開始できませんでした - リモートの下位デバッガーへの DDD
リモート マシンで DDD を gdb に接続しようとしています。マシンとユーザー名のパスを必要としないように rsh を構成しました。
ddd が「rtx5:1234: not found」で開き、「GDB could not be started」というポップアップが表示されます。ddd の呼び出しから --host rtx5:2159 --trace --no-exec-window /home/murray/beer-process
ddd がトレースログから起動した GDB の PID は 4 桁です。ただし、rtx(target) から確認できる PID はすべて 8 桁です。gdb をプロセスとして見ることはできませんが、トレース ログにはそれ以外のことが示されています。ドキュメンテーションは古くなっていますか? 間違って呼び出していますか? ddd が正しく rsh-ing されているかどうかをテストするにはどうすればよいですか?
ドキュメント 2.4.1の警告に対処しました。
- Beer-process バイナリは、ターゲット上のユーザー名のホーム ディレクトリにあります。
- /usr/bin/gdb で gdb のパスを確認しました
- rtx5 には xterm がないため、 --no-exec-window フラグを含めます
前もって感謝します