問題タブ [gdbserver]

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 投票する
1 に答える
537 参照

c - gdbserverを使用したデバッグの発行

Netbeansでgdbserverプラグインを使用して、リモートデバッグセッションに接続しようとしています。ただし、「デバイスに不適切なioctl」というエラーが表示されます。ターミナルからgdbを起動することでリモートデバッグできますが、デバッグにNetbeansを使用できるようにしたいと思います。

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

android - Android デバッグ ネイティブ コード「gdb.setup : そのようなファイルまたはディレクトリはありません」

私は、ndk サンプルの hello-jni の C コードをデバッグするために、ほぼ 1 週間試みてきましたが、うまくいきませんでした。これを行う方法について多くのチュートリアル/ブログ投稿をたどろうとしましたが、やはりうまくいきませんでした.

たとえば、このチュートリアルに従う場合: http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/、ndk- gdb それは言う:「cp:`.libs/armeabi/gdb.setup'を統計できません:そのようなファイルまたはディレクトリはありません」

多くのチュートリアルで説明されているように、ndk-gdb の最後の行をコメントアウトしました。

これは、cygwin から ndk-gdb を実行したときに得られるものです。

$ /cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d/ndk-gdb-eclipse --project=/cygdrive/d/data/klr200/construction/software/local/pc/ android-ndk-r8d/samples/hello-jni --verbose --force --adb=/cygdrive/d/data/klr200/construction/software/local/pc/android-sdk/platform-tools/adb.exe

Android NDK インストール パス: /cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d
特定の adb コマンドを使用: /cygdrive/d/data/klr200/construction/software/local/pc/android -sdk/platform-tools/adb.exe
見つかった ADB バージョン: Android Debug Bridge バージョン 1.0.31
ADB フラグの
使用: 指定されたプロジェクト
パスの使用: /cygdrive/d/data/klr200/construction/software/local/pc/android-ndk -r8d/samples/hello-jni 検出
されたパッケージ名: com.example.hellojni
アプリケーションが対象とする ABI: armeabi
デバイス API レベル: 10
デバイス CPU ABI: armeabi
互換デバイス ABI: armeabi
gdb を使用 setup init: ./libs/armeabi/gdb 。設定

ツールチェーン プレフィックスの使用 : /cygdrive/d/data/klr200/construction/software/local/pc/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-アプリ出力ディレクトリ: ./obj/local/armeabi 検出
されたデバッグ可能フラグ: true
検出されたデバイス gdbserver: /data/data/com.example.hellojni/lib/gdbserver 検出
されたデータ ディレクトリ: '/data/data/com.example.hellojni'
実行中の PID が見つかりました: 351
既存のデバッグ セッションを終了してい
ます コマンド: adb_cmd shell kill -9 496
[1] run-as com.examp を終了しました...
gdbserver を正常に起動しました。
ネットワーク リダイレクトのセットアップ
コマンド: adb_cmd shell run-as com.example.hellojni lib/gdbserver +debug-socket --attach >351
コマンド: adb_cmd forward tcp:5039 localfilesystem:/data/data/com.example.hellojni/debug-socket
コマンド: adb_cmd pull /system/bin/app_process obj/local/armeabi/app_process
添付; pid = 351
Unix ソケットでリッスンする debug-socket
16 KB/秒 (0.329 秒で 5660 バイト)
デバイス/エミュレーターから app_process をプルしました。
コマンド: adb_cmd pull /system/bin/linker obj/local/armeabi/linker
48 KB/秒 (0.786 秒で 39404 バイト)
デバイス/エミュレーターからリンカーをプルしました。
コマンド: adb_cmd pull /system/lib/libc.so obj/local/armeabi/libc.so
77 KB/秒 (3.468 秒で 273868 バイト)
libc.so をデバイス/エミュレーターからプルしました。
cp: `./libs/armeabi/gdb.setup' を stat できません: そのようなファイルまたはディレクトリはありません

app_process がどこにも見つかりません (これが非常に重要であることは理解しています)。プロジェクト ディレクトリ.../libs/armeabi を見ると、gdb.setup ファイルがあります。

私は使用しています:

  • Android NDK r8d
  • Android SDK 21.1
  • CDT 8.1.1 を使用した Eclipse Juno
  • 最新のシグウィン
  • Windows 7 32 ビット
0 投票する
1 に答える
7526 参照

linux - リモートgdbserverでdddを開始する

dddを使用してリモートターゲットで実行されるプログラムをデバッグしています(たとえば、リモートgdbserverはポート1234を介してローカルホストで実行されていますが、それでもリモートとして機能します)。

http://www.gnu.org/software/ddd/manual/html_mono/ddd.html#Remote%target remote localhost:1234で説明されているように、dddを開いてから、dddのgdbコマンドラインを呼び出すことでgdbserverに接続できることを知っています。
20プログラム

ただし、target remote localhost:1234dddを開くたびにコマンドを呼び出す必要はなく、エイリアスを使用してgdbserverに自動的に接続するように設定したいと思います。実行しようとしddd --rhost localhost:1234 programましたが、dddを起動すると、「GDBを開始できませんでした」というウィンドウが表示され、シェルに次のように記述されます。

sh:1:exec:localhost:1234:見つかりません

起動時にリモートgdbserverに接続する方法を知っている人はいますか?

Tnx!

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

gdb - gdb/mi gdb サーバーのデバッグ

gdb mi と gdb サーバーの違いは何ですか? 両方ともローカル デバッグに使用できますか?

Red Hat の gdb サーバーでのデバッグのトラブルシューティングで問題に直面しています。デバッグ ランチャーは 72 % で停止します。

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

gdb - GDB MI : 実行中にコードを出力または一覧表示する

現在実行中のコードを印刷またはリストするように GDB インターフェイスに依頼する方法はありますか。

GDB経由でこれを行うにはどうすればよいですか(現在実行中のコードをリストします)?

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

variables - スレッドを生成した後、gdbは変数にアクセスできません

古い開発ボードから新しい開発ボード(ARM cortex A9を搭載したiMX6サーベルライトボード)に移行した後、アプリケーションをデバッグしようとしています。__answer__sectionで説明されているように、ホストでgdbを実行し、開発ボードでgdbserverを実行しています。クロス(ARM)デバッグでgdbが使用するランタイムライブラリ(libc、ldなど)を変更するにはどうすればよいですか。

アプリケーションを実行しようとしているときに、スレッドを作成する手順を実行すると、次のようになります。

その後、デバッグの実行を続行できません。コードをステップスルーするのではなく、単にコードを実行すると、次のようになります。

作成するスレッドにブレークポイントを追加すると、そこで実行が停止しますが、その後も続行できません(終了しません)。

スレッドスタックサイズが小さい可能性について読みましたが、それは8MBであり、引数argv [1](現時点では空です)のみをスレッドに渡しています。

Linaro gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linuxツールチェーンを使用して、アプリケーションを作成しました。ボード上で実行されている(そしてデバッグ中に使用される)共有ライブラリは、LTIB_201204rootfsに属しています。

ご協力ありがとうございました

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

linux - Linux リモート デバッグ スレッド エラー (GDBServer)

ARM デバイスがあり、それをデバッグしたいと考えています。私のホスト コンピューターは Linux 12.04 で、Eclipse を使用しています。ターゲット デバイスで GDBServer を実行します。

シングル プロセス アプリケーションをデバッグできます。しかし、pthread オブジェクトを含むマルチスレッド アプリケーションをデバッグしたい場合、デバッグは失敗します。私は一歩ずつ実行しますが、私が来たとき

ライン デバッガーは以下のエラーを表示します。 "0x40174c84" のソースがありません。

それで、私は何をすべきですか?

なにか提案を?

ありがとう。

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

gdb - GDB MI : デバッグのために親プロセスに従う

GDB MI 命令を使用しているときに、プログラムが分岐して子プロセスを作成する場合、最後の子プロセスのみのデバッグが開始されることがわかりました。したがって、親でブレークをデバッグしようとすると、その時点でブレークしません:

stackoverflow.com で次の貴重なリファレンスを見つけました。

gdb で fork() の後に子プロセスをデバッグするにはどうすればよいですか?

私の質問は、フォローフォークモードモードを設定する方法と、どの GBD MI API を使用するかということです。

http://src.gnu-darwin.org/ports/editors/setedit/work/setedit/libmigdb/doc/reference.html

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

gdb - リモートファイルからシンボルテーブルをロードするgdbserver

gdbserver を使用しようとしています... pid で実行されている
バイナリパスを持つアプリケーションがあります。/user/bin/foo19767

リモートで gdbserver を開始しました。

クライアントで gdb を起動し、接続してサーバーを削除する

pid に接続された gdb

それが示している:

また、表示されている現在のスレッド情報が正しくありません。情報のようにスレッドは 1 スレッドを示していますが、私のアプリには 10 個のスレッドがあります-

リモートファイルからシンボルを読み込むようにgdbに依頼するにはどうすればよいです/user/bin/fooか? 正しい情報を表示するには?

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

android - Android ndk-gdb の分散 .so へのデバッグ

Android 開発者に配布されるネイティブ コードの「コア」セットがあり、そこから独自のネイティブ コードにリンクできます。したがって、Android .apk には 2 つの .so があります。デバッグを支援するために、同じプロジェクトで明示的にコンパイルされていないときに、「コア」.so にデバッグできるようにしたいと考えています。

明確にするために。

1) ndk-build NDK_DEBUG=1 が配布可能ファイルで実行されます。

2) 結果の「コア」.so は、依存プロジェクト (この場合はテスト アプリ) の Android.mk ファイルに含まれます。

3) テスト アプリで ndk-build NDK_DEBUG=1 を実行します。

すべてが必要に応じてコンパイルおよび実行されますが、「テスト」.so にのみデバッグできます。libs フォルダーの下にある gdb.setup ファイル (NDK_DEBUG を有効にして作成) を使用して ndk-gdb がどのようにリンクするかについて、高度な理解があります。私は現在、両方を含める方法を一緒にハックしようとしています。

誰かが似たようなことをしましたか?私はかなり徹底的に検索しましたが、結果は見つかりませんでした。「テスト」プロジェクトと「コア」プロジェクトのネイティブ アスペクトを単一の .so にコンパイルし、任意のネイティブ ソース コード (コアまたはテスト) にデバッグできますが、残念ながら、これは意図した結果の適切なテストではありません。

ありがとう