問題タブ [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 に答える
253 参照

eclipse-cdt - リモートデバッグ時、ターゲット上のソースファイルにアクセスする方法

アプリケーションをリモートでデバッグするために CDT を使用しています。アプリケーションはソース フラグメントを構築し、それをメモリに JIT します。デバッグのために、インメモリ ELF/DWARF イメージを作成して GDB JIT インターフェイスに登録し、DWARF に対応するソース ファイルをローカル (ターゲット) ファイルシステムに書き込みます。

問題は、デバッガのフロントエンドがホスト ファイリング システムでソース ファイルを見つけることを期待していることです。すべての JIT イベントの後でソース ファイルをターゲットからホストに手動でコピーすると、デバッガーはソースをステップ実行できますが、これは非現実的です。JITにファイルをホストにアップロードさせるには、JITがデバッグされている(およびどこから)かを認識する必要があります。必要に応じて、ターゲット ファイル システムからソース ファイルを取得するために、gdbserver (CDT) を取得する方法はありますか?

GDB JIT インターフェースに渡される ELF/DWARF イメージを作成するので、代替パスを使用してソース ファイルの場所を記述できます。

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

linux - GDB シンボルを追加した後、アプリケーションの実行が遅くなる - 副作用?

リリース モードで約 20MB のサイズのアプリケーションがあります。このアプリケーションは、Linux 2.6.12 を実行する MIPS で実行することを意図しています。同じもののデバッグ ビルドは約 42 MB で、最適化がオフになり、-g フラグが追加されています。追加の 22 MB の増加は、アプリケーションに埋め込まれた gdb デバッグ シンボルによるものです (ログや print ステートメントは追加されていません)。

デバッグ ビルドは、リリース モードと比較してイメージよりも遅く実行されます。はいの場合、なぜですか?

また、AFAIKstrip debug_imageは私に を与えるはずですrelease_imageが、私の場合、次のことを観察します。

削除された debug_image と release_image に違いがあるのはなぜですか?

アプリケーションに gdb シンボルを埋め込むことによるその他の副作用はありますか?

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

android - ブレークポイントに到達したときにNDKアプリがクラッシュするのはなぜですか?-または-「このAndroidプラットフォームではスレッドのデバッグがサポートされていません!」というメッセージが表示されるのはなぜですか。ジンジャーブレッドに?

NDKr6bを使用して2.3.6デバイスでマルチスレッドAndroidアプリをデバッグしようとしています。私もNDKr8を使ってみましたが、同じ結果になりました。ブレークポイントに到達するたびに、アプリがクラッシュします。「スレッドのサポート」セクションのNDKr5bドキュメントで説明されているケースに入っているようです。

記載されている正確なエラーが表示されます。Thread debugging is unsupported on this Android platform!ndk-gdbを実行するとわかるので、このケースに陥っていると思います。私が言ったように、私はジンジャーブレッドデバイスを使用してい<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9"/>て、マニフェストにあるので、このケースに入る必要はありません。

クラッシュするために私が従う手順の詳細は次のとおりです。

  1. Eclipseからのデバッグを使用してアプリを起動します
  2. ネイティブライブラリがロードされるSystem.loadLibraryの後に設定したブレークポイントにヒットします
  3. 私のプロジェクトディレクトリで、ndk-gdb --force--verbose--startを実行します
  4. gdbが正常に起動し、接続されている
  5. gdbにブレークポイントを設定し、Eclipseで続行してから、gdbで続行します
  6. クラッシュ!

編集されたコンソールダンプについては、以下を参照してください。

なぜこれが起こるのかについてのフィードバックをいただければ幸いです。

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

c - 自己実行プログラムをデバッグするための GDB MI メカニズム

最近、MI ライブラリをダウンロードし、いくつかのサンプル コードを実行/読み取りました。私が見たすべての例では、実装は以下のような別のプログラムを介していました。

私の質問は、現在のスレッド/プログラム自体で GDB を呼び出す/実装する方法、つまりこの自己実行プロセスをアタッチする方法です。

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

gdb - GDB ハードウェア ブレークポイントがリモート デバッグで機能しない

GDBServer を使用して、ARM11 CPU でリモート デバッグを行います。ソフトウェア ブレークポイントはうまく機能しますが、"hbreak test.c:5" を使用してハードウェア ブレークポイントを設定すると、CPU が停止しません。

GDB バージョン: 7.3.1

対象CPU:ARM11

手術:

GDB7.3.1 でハードウェア デバッグを有効にする方法を教えてくれる人はいますか? ありがとう!

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

android - APK の重複ファイルが見つかりました: lib/armeabi-v7a/gdbserver

Androidに2つのjniプロジェクトがあります。そのうちの 1 つをプロジェクトの開発に使用したいと考えています。プロジェクトの 1 つは、他のプロジェクトのメソッドを呼び出します。プログラムのコンパイル中にエラーは発生しません。ただし、プログラムを実行しようとすると、次のエラーが発生します。

この状況について何か考えはありますか?

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

linux - Qt アプリケーションをリモート実行すると、Linux でキーボード入力が失われる

QtプラグインでEclipse CDTを使用しています。X を使用せずに Debian で作業し、Qt の QWS サーバーで GUI を実行しています。

簡単に言えば、論理的な作業を行う通常の cpp スレッドを開始してから、標準の QApplication の実行を開始しています。ターゲット マシン上でローカルに正常に動作します。しかし、プログラムを Eclipse のリモート システム エクスプローラー サービスからリモートで開始するか、gdbserver でデバッグを開始すると、キーボード入力が正しく処理されず、キーボード イベントの一部がランダムに取得されます。つまり、競合状態になります。ただし、マウス入力は問題なく機能します。

質問が十分に明確ではないことは承知していますが、問題に集中する方法がわかりませんでした。必要に応じて追加のフィードバックを提供できます。

前もって感謝します。

0 投票する
0 に答える
164 参照

c - リモート gdb シンボル テーブルがロードされていません

リモート gdb セッションを開始しようとしています。これが私がこれまでに行ったことです。

しかし、この後、ブレークポイントを挿入できません。ブレークポイントが保留中です(シンボルテーブルがロードされていません)と表示されます。しかし、続行すると、プログラムがクラッシュします。

Webで検索しましたが、これについては何も見つかりませんでした。私は本当にあなたの助けに感謝します. ありがとう。

0 投票する
0 に答える
773 参照

android - Android NDK gdb (ndk-gdb) がエラー readchar で終了: 「info functions」を使用すると EOF が発生しました

ndk-gdb で非常に奇妙な問題が発生しました。

次のようなコマンドを使用しようとすると、break < fun_name >、break < file_name:line >、info functions エラーが発生し、gdb が終了します。

問題が発生しましたが、この gdb は私の src ファイルを認識していませんが、なぜですか?

「info sharedlib」は、読み込まれたライブラリと、デバッグ シンボルを持つすべてのライブラリを表示します。

「show dir」は、src ファイル (.c、.cpp) を含むすべての有効なディレクトリを表示します。

アプリケーション クラッシュ gdb が停止すると、スタック トレースが表示され、「c」コマンドに反応しますが、src ファイルは表示されません。

プログラムが (Eclipce の) Java ブレーキポイントで停止したとき、cygwin シェルで以下のコマンドを実行します (管理者の権限で):

$NDK/ndk-gdb --verbose --force --adb=/cygdrive/c/Programs/android-sdk/platform-tools/adb.exe

デバイスでデバッグします。android-ndk-r7-crystax-5.beta2 と android-ndk-r8b を使用してみてください。すべて同じエラー。誰かがこの問題を抱えていますか?

ありがとう。

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

android - GDBSERVERは起動時に終了します

Android(Java / C / C ++)で混合コードをデバッグしようとしています。私のターゲットデバイスはVizio1008です。コードはエミュレーターで実行され、GDBを使用してEclipseからデバッグできます。ただし、実際のデバイスではこれを行うことはできません。

これに何日も苦労した後、私は問題を特定しました:

GDBSERVERがデバイスで(正常に)起動すると、「不明なレジスタd0が要求されました」というメッセージが表示されてすぐに終了します。したがって、デバッグセッションはできません。ARMのDS-5デバッガも試してみました。GDBSERVERは接続されたままですが、リモートデバッガーからの接続試行で終了します。GDBSERVERデバッグ出力を試しましたが、有用な情報が提供されません。

さらに奇妙なことに、入手できるGDBSERVERのバージョンを試してみたところ、すべてがこのように動作しました。ただし、古いバージョンのGoogle NDK(3または4バージョン前)の1つからGDBSERVERを見つけました。そして、このバージョンは機能します!!! しかし、プログラムがOKであることを私が知っていても、(ホスト上の)デバッガーはすぐに停止します(セグメンテーション違反)。

GDBSERVERのソースコードを調べたところ、このエラーは、GDBSERVERがハードウェアを検査するときの起動シーケンスに関連しているように見えます。おそらく、浮動小数点コプロセッサに関連していますが、このエラーメッセージはかなり一般的であるため、わかりません。

重要な場合は、GoogleNDKを使用してWindowsで開発しています。コードは99%C / C ++で、Javaシェルといくつかの関数がJavaで実装されています(スレッド化されたHTTP呼び出し)。この場合も、アプリケーションはデバイス上で動作し、エミュレーター上でデバッグできます(JavaとC / C ++の両方)。デバイスでJava部分をデバッグすることもできます。

誰かがそれが何であるかを知っていますか?そしてそれを修正する方法は?ビジオですか?

前もって感謝します。