問題タブ [jdb]

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.

0 投票する
3 に答える
2318 参照

java - jdb 条件付きブレークポイント

JDB を使用してアプリケーションをリモート デバッグします。JDB のみで、IDE は使用しません。jdb で条件付きブレークポイントを設定する方法はありますか?

例: mystr.equals("abc") の場合、MyClass:80 で停止します。

0 投票する
1 に答える
447 参照

eclipse - Eclipseの外部でEclipseでデバッグセッションを呼び出す

Eclipseでデバッグセッションを実行するが、Eclipseの外部でそれを呼び出す方法([実行]-> [デバッグ]を実行する代わりに、Eclipseでデバッグを開始するプロセス(おそらくjdb?)を呼び出したい)。それは可能ですか?

0 投票する
3 に答える
2689 参照

android - waitForDebuggerを使用したjdbの混乱を伴うAndroid

コマンドラインを使用して、デバイス(Nexus One-エミュレーターではない)でAndroidアプリケーションをデバッグしたいと思います。

jdbを。と組み合わせて使用​​してブレークポイントを設定する方法に混乱していますandroid.os.Debug.waitForDebugger

私のメインアクティビティに次のコードを入れたとしましょうonCreate

を使用ddmsすると、アプリケーションを起動したときに、アプリケーションがデバッガー(赤いバグアイコン)を待機していることがわかります。

waitForDebugger()ただし、ステップを開始できるように、呼び出し後にブレークポイントを設定する方法がわかりません。

明らかに、アタッチするだけjdbで、停止することなくアプリをすぐに実行し続けることができます。

例えば

実行する前にブレークポイントをプリセットjdbする方法、またはブレークポイントの設定を開始してからjdbアタッチする方法はありますか?

0 投票する
3 に答える
3873 参照

java - JDB -- プログラムを実行する前にメソッドのリストを取得する方法は?

私は JDB を学んでいて、少しパラドックスに陥っています。JDB を ("jdb ClassName" で) 起動した後、ほとんどのチュートリアルで入力するように指示されます。

> メソッド ClassName

ブレークポイントを設定できるように、使用可能なメソッドのリストを表示します。私がそうすると、JDBは応答します

コマンド「メソッド」は、VM が「実行」コマンドで開始されるまで有効ではありません

もちろん、ブレークポイントを設定する前に「実行」と言うと、そのまま実行されます。あまり役に立ちません。私が結論付けることができる唯一のことは、jdb はブレークポイントをブラインドに設定することを期待しているということですが、これは非常に見落としのように思えます。単にコマンドが抜けているだけだと思います。

どうもありがとう!!ジョイス

0 投票する
4 に答える
8241 参照

android - Android開発:コマンドラインからのddmsにデバイスが表示されない

===============================

*解決済み*:以下の回答を参照してください

Eclipseは使いたくない。

コマンドラインから:

エミュレーターが実行されています。adbサーバーが実行されています。「adbdevices」が正しくリストされ、出力のavdにインスタンスが表示されます。

ただし、コマンドラインから手動でDDMSを起動すると、接続を試み続けます。接続構成の問題は見つかりません。

(「Eclipseを使用する」以外の)提案は大歓迎です!

(はい、それは日食の中から機能し、ddmsはスレッドなどを示します)

システム:Debian Squeeze

更新:update-java-alternativesを実行して、「Java(TM)SEランタイム環境(ビルド1.6.0_20-b02)」用にJavaが正しくセットアップされていることを確認しました。ベテランのDebianユーザーにとってはそれほど驚くことではありませんが、私のJavaは今では悪化しています...コマンドラインからddmsを実行すると、次のようになります:-

0 投票する
1 に答える
834 参照

android - Androidアプリを使用したjdb - ソースファイルを開くことができません

jdb を使用して、エミュレーターで ddms を介して Android アプリをデバッグしたいと考えています。

クラスの onCreate にブレークポイントを正常に設定すると、デバッガ (jdb) が正常に停止します。ただし、コードを「リスト」しようとすると、ソースファイルが見つからないと表示されます。私はemacsからこのようにjdbを起動します:-

myact.java がそのディレクトリにあるという事実を知っています。私はjdbの初心者ですが、これに対処する方法はsourcepathではありませんか? そうでない場合、私は何をすべきですか?

0 投票する
2 に答える
4370 参照

java - Java jdb デバッガーで変数を出力する

クラスがデバッグフラグなしでコンパイルされた場合、関数で引数として渡された変数を表示することは可能ですか? 呼び出し時にブレークポイントを正常に配置しましたが、その後、引数の値を表示する方法がわかりません。良いソース コードがありません。ソフトが難読化されています。次のような関数: void a(int var1, boolean var2) - したがって、印刷 var1 と印刷 var2 が必要です。

0 投票する
4 に答える
10996 参照

java - jdbのソースとしてソースを持つjarを使用しますか?

ソースがコンパイルされた実行可能jarがあり、jdbを使用してデバッグしたいと思います(残念ながら、この環境で使用できる他のデバッガーはありません)。

私はそれをデバッグすることができます

jdbにjarファイルに組み込まれているソースを使用させるにはどうすればよいですか?

注: Java 6、AIX、ksh

0 投票する
2 に答える
1511 参照

java - Groovy/GrailsコードのJDBデバッグ

継承したいくつかの(かなり厄介な)Grailsコードでいくつかの問題をデバッグしようとしています。私はGroovyとGrailsの比較的初心者ですが、Javaの老人です。

問題は次のとおりです。jconsoleフックとjdbフックを使用してこの機能を実行していますが、コードの多くがクロージャに含まれているため、デバッガーを使用するのは困難です。したがって、たとえば、

コントローラでの単一メソッドの実装として。

クロージャーであるため、(デバッガーがそれを認識するまでの)名前はTheController.closure527(またはそのようなもの)であり、特に見つけるのは困難です。

では、ブロック名からクロージャーまでのマップをどのように見つけることができますか?

より一般的には、この種のことを行うための良いチュートリアルはありますか?

理想的には、神が私たちにEMACSを与えなかったようなIDEを使用することを神が意味していたかのように、答えはIntelliJに切り替えることを含まないでしょう。

0 投票する
4 に答える
8595 参照

debugging - 「jdb -attach」(またはjswat)を使用したAndroidアプリのデバッグ

エミュレーター上の Android アプリでスタンドアロンの Java デバッガーを使用すると問題が発生します。どうやら、jdb(またはjswat)などのリモート対応のJavaデバッガーは、以下の手順に従うことで活用できます(あちこち読んだ後、理解できます)。

1) エミュレーターの電源を入れ、エミュレーターにアプリをインストールします (adb install)

2) dalvik サーバー (ddms) をオンにします。

3)エミュレータで、「DevTools」アプリを実行します->「開発設定」->デバッグするアプリを選択し、「デバッガーを待機」フラグを有効にします

4) エミュレーターで再びアプリを実行します。デバッガーがアタッチされるのを待ってブロックされ、dalvik は「赤いバグ」によってフラグが立てられた新しいプロセスを表示します。

5) dalvik で、赤旗のプロセスを選択します。したがって、そのデバッグ ポートは localhost:8700 に転送されます。

6) デバッガーを localhost:8700 にフックします。jdb では、「jdb -attach 8700」を実行する必要があります。

デバッガーが起動されるとすぐに、エミュレーター上のアプリのブロックが解除されます。したがって、アプリはデバッガーを適切に検出したため、無料で実行されているようです。

ただし、重要なのは、「自由に実行される」ことです。つまり、デバッガーが「実行」コマンドを発行するのを待ちません。そのため、ブレークポイントを設定する機会がありません。

1のヒントに従って、ブレークポイントを設定する時間があることを期待して、アプリの先頭に待機ループを配置しようとしました。ブレークポイントを設定しようとすると、アプリがまだ実行されていないため、jdb は「ブレークポイント XXX.YYY を保留しています。クラスがロードされた後に設定されます。」と表示します。しかし、「実行」コマンドを発行すると、アプリは既に実行されていたため、答えは「中断されたものはありません」です (実際に実行されています)。

jswat ではこれらのメッセージは表示されませんが、最終的な結果は同じです :-(

言うまでもなく、「jdb -attach」は、localhost で実行されている Android 以外の Java アプリでも問題なく動作します。

ヒントはありますか(「日食を使用してください」を除く)?

ばかげた詳細がどこかに欠けているだけですか?

アプリはHelloWorld、ビルドコマンドは「ant debug」です。

前もって感謝します。