問題タブ [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.
eclipse-cdt - リモートデバッグ時、ターゲット上のソースファイルにアクセスする方法
アプリケーションをリモートでデバッグするために CDT を使用しています。アプリケーションはソース フラグメントを構築し、それをメモリに JIT します。デバッグのために、インメモリ ELF/DWARF イメージを作成して GDB JIT インターフェイスに登録し、DWARF に対応するソース ファイルをローカル (ターゲット) ファイルシステムに書き込みます。
問題は、デバッガのフロントエンドがホスト ファイリング システムでソース ファイルを見つけることを期待していることです。すべての JIT イベントの後でソース ファイルをターゲットからホストに手動でコピーすると、デバッガーはソースをステップ実行できますが、これは非現実的です。JITにファイルをホストにアップロードさせるには、JITがデバッグされている(およびどこから)かを認識する必要があります。必要に応じて、ターゲット ファイル システムからソース ファイルを取得するために、gdbserver (CDT) を取得する方法はありますか?
GDB JIT インターフェースに渡される ELF/DWARF イメージを作成するので、代替パスを使用してソース ファイルの場所を記述できます。
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 シンボルを埋め込むことによるその他の副作用はありますか?
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"/>
て、マニフェストにあるので、このケースに入る必要はありません。
クラッシュするために私が従う手順の詳細は次のとおりです。
- Eclipseからのデバッグを使用してアプリを起動します
- ネイティブライブラリがロードされるSystem.loadLibraryの後に設定したブレークポイントにヒットします
- 私のプロジェクトディレクトリで、ndk-gdb --force--verbose--startを実行します
- gdbが正常に起動し、接続されている
- gdbにブレークポイントを設定し、Eclipseで続行してから、gdbで続行します
- クラッシュ!
編集されたコンソールダンプについては、以下を参照してください。
なぜこれが起こるのかについてのフィードバックをいただければ幸いです。
c - 自己実行プログラムをデバッグするための GDB MI メカニズム
最近、MI ライブラリをダウンロードし、いくつかのサンプル コードを実行/読み取りました。私が見たすべての例では、実装は以下のような別のプログラムを介していました。
私の質問は、現在のスレッド/プログラム自体で GDB を呼び出す/実装する方法、つまりこの自己実行プロセスをアタッチする方法です。
gdb - GDB ハードウェア ブレークポイントがリモート デバッグで機能しない
GDBServer を使用して、ARM11 CPU でリモート デバッグを行います。ソフトウェア ブレークポイントはうまく機能しますが、"hbreak test.c:5" を使用してハードウェア ブレークポイントを設定すると、CPU が停止しません。
GDB バージョン: 7.3.1
対象CPU:ARM11
手術:
GDB7.3.1 でハードウェア デバッグを有効にする方法を教えてくれる人はいますか? ありがとう!
android - APK の重複ファイルが見つかりました: lib/armeabi-v7a/gdbserver
Androidに2つのjniプロジェクトがあります。そのうちの 1 つをプロジェクトの開発に使用したいと考えています。プロジェクトの 1 つは、他のプロジェクトのメソッドを呼び出します。プログラムのコンパイル中にエラーは発生しません。ただし、プログラムを実行しようとすると、次のエラーが発生します。
この状況について何か考えはありますか?
linux - Qt アプリケーションをリモート実行すると、Linux でキーボード入力が失われる
QtプラグインでEclipse CDTを使用しています。X を使用せずに Debian で作業し、Qt の QWS サーバーで GUI を実行しています。
簡単に言えば、論理的な作業を行う通常の cpp スレッドを開始してから、標準の QApplication の実行を開始しています。ターゲット マシン上でローカルに正常に動作します。しかし、プログラムを Eclipse のリモート システム エクスプローラー サービスからリモートで開始するか、gdbserver でデバッグを開始すると、キーボード入力が正しく処理されず、キーボード イベントの一部がランダムに取得されます。つまり、競合状態になります。ただし、マウス入力は問題なく機能します。
質問が十分に明確ではないことは承知していますが、問題に集中する方法がわかりませんでした。必要に応じて追加のフィードバックを提供できます。
前もって感謝します。
c - リモート gdb シンボル テーブルがロードされていません
リモート gdb セッションを開始しようとしています。これが私がこれまでに行ったことです。
しかし、この後、ブレークポイントを挿入できません。ブレークポイントが保留中です(シンボルテーブルがロードされていません)と表示されます。しかし、続行すると、プログラムがクラッシュします。
Webで検索しましたが、これについては何も見つかりませんでした。私は本当にあなたの助けに感謝します. ありがとう。
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 を使用してみてください。すべて同じエラー。誰かがこの問題を抱えていますか?
ありがとう。
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部分をデバッグすることもできます。
誰かがそれが何であるかを知っていますか?そしてそれを修正する方法は?ビジオですか?
前もって感謝します。