問題タブ [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.
ios - iOS での GDB サーバーの移植
iOS 用の最新の GDB サーバー バージョン (7.4 または 7.5) のいずれかをクロスコンパイルする必要があります。デフォルトでは、configure スクリプトはそのようなターゲット (arm-apple-darwin) をサポートしていません。ただし、GDB サーバーの Apple のオープン ソース バージョン (GDB のかなり古いバージョンに基づく) を最新の GDB バージョンとマージする考えがあります。誰かがこのアプローチを試しましたか? より良い方法があるかもしれませんか?
debugging - gdbserverからリモート実行可能ファイル名を取得することは可能ですか?
グラフィカルGDBフロントエンドに取り組んでいますが、ローカルデバッガーに実行可能ファイルがロードされていないことを前提として、リモートターゲットから完全な実行可能ファイル名を取得する方法があるかどうか知りたいです。
CLIまたはMIのどちらを使用しても問題ありません。
arm - gdbserver 共有ライブラリ
私はgdb 7.1でARMシステムに取り組んでいます(7.5も試しました)。このツールを使用して、複数の共有ライブラリで構成されたアプリケーションをデバッグしています。
このアプリケーションを ARM 側でデバッグすると、gdb 7.1 を使用して、ロードされた共有ライブラリ (数字の「共有」) を確認できます。完全!
WindowsホストのgdbとARMのgdbserverで同じことをリモートで実行しようとしています。
だから私は持っています:1)arm v.7.4.1のWindows上のgdb(7.3.1も試しました)2)arm v.7.1のgdbserver(7.5も試しました)
Windowsでは、共有ライブラリを除いてすべてを問題なくデバッグできます。実際、「共有」を数字で入力しようとすると、ロードされた共有ライブラリがないと表示されます。少なくとも 1 つのライブラリがロードされていることは間違いありません (アーム側でも同じ状況で問題なく動作します)。
何か案が?
編集:おそらく私は何かを見つけました:
アーム上の gcc で、ロードされた共有ライブラリ (「共有」) を要求すると、solib を完全にサポートする関数 solib.c:info_sharedlibrary_command が呼び出されます。(そしてそれは正常に動作します)
代わりに、Windows の gdb とアームの gdbserver で同じコマンドを要求すると、solib を管理せず、dll のみを管理するコマンド「qXfer:libraries:read:」が渡されます。そして、dlls リストは明らかに空です。
私は何か見落としてますか?
gdb - gdb をリモート マシンのプログラム名に自動的にアタッチするにはどうすればよいですか?
gdbinit をセットアップして、gdb をリモート マシン上の特定のプログラムに自動的にアタッチしようとしています。
私のスクリプトは次のようなものです:
もちろん、私の問題は $pid がないことです。を実行して見つけることができますがssh remotemachine ps | grep myprogram、それを gdb スクリプト内から実行してその$pid変数に割り当てる方法がわかりません。どうやってやるの?ここでPythonが必要になると思います...
eclipse-cdt - Eclipse CDT 4.2 デバッグ リモート外部プログラム
GDB を使用してリモート アプリケーションをデバッグするためにデバッグしたいと考えています。
私のターゲットシステムは、実行中の FreeBSD 8.3 ボックスgdbserverです。アプリケーションはそのボックスで正常にコンパイルされました。私の Eclipse CDT 4.2 は、最新の MinGW がインストールされた Windows 7 で動作します。
これは、デバッグしたい外部プログラムです。これは私が書いたものではなく、ライブラリとして持っているものでもありません。私は自分のプログラムを書くつもりはありません。この場合、デバッグしたいのは Subversion 1.8.0-dev です。
簡単な C プロジェクトを作成し、Subversion のソースを添付しました。リモート デバッグ構成を作成し、ソースを実行中のスレッドにアタッチしましたgdbserver。
これで、Eclipse はmainSubversion の機能に入りますが、添付された別のソース ファイルにブレークポイントを設定すると、Eclipse は次のようra_loader.cに言います。
次に、アプリケーションが存在するだけです。
ここで何が欠けていますか?
gdb - 奇妙なgdbserver出力がターゲットデバイスに表示されます
uclinuxターゲットデバイスでgdbserverを実行するとblackfinbfin537/ stemは完全に機能しますが、常に迷惑な出力を生成します不明なレジスタを取得する要求232不明なレジスタを取得する要求236
gdbクライアントの各ステップアウトまたはステップで出力画面ターミナルRS232にそのエラーがいくつか発生するため、非常に煩わしいです。bfinコンパイラのバージョンを変更し、異なるバージョンのuclinuxでgdbサーバーを再構築することをお勧めします。動作し、異なるバージョンのbfin-uclinux-gccでコードをコンパイルしても、問題は解決しませんでした。
gdbserver.cを再コンパイルして、エラーを生成する行を削除することにしましたが、実際には、その行はコンパイル用のgdbserver関連ファイルのいずれにも存在しません。
gdbserver:3298 process 1> / dev / null 2> / dev / nullを実行してgdbサーバーのstderr出力を抑制することにしましたが、これでは解決しませんでした。特定のレジスタを要求するようにgdbクライアントを構成するにはどうすればよいですか(bfin- uclinux-gdb)bfin537-stampに関連していますか?
このエラーは、uclinuxシステムのバックグラウンドシステムプロセスのどこかで発生していると思います。どのプロセスがstderr、stdoutに書き込み、それを認識していないかを見つけたいのですが、その出力を抑制したいですか?
すべてのstderr出力を削除するためにbusyboxシェルまたは/bin/ bashの何かを変更しますか?つまり、すべての親シェル出力またはstderrを/ dev/nullに送信する場合
linux - gdbでのアプリケーションアフィニティの設定
gdbを同じコアにロックせずに、デバッグしているアプリケーションのアフィニティを設定する簡単な方法はありますか?私が尋ねている理由は、アプリケーションがリアルタイムの優先順位で実行されており、シングルコアで実行する必要があるためです。現時点では、このコマンドラインを使用しています
ただし、アプリケーションは応答を停止し、gdbサーバーをフリーズするため、デバッグが不可能になります。アプリケーションのリアルタイム優先度により、gdbの実行が妨げられているのではないかと思います。アプリケーションを起動してからアフィニティ設定なしでgdbを起動すると、gdbがフリーズすることなくアプリケーションをアタッチしてデバッグできます。
異なるアフィニティでgdbとアプリケーションを起動する簡単な方法はありますか?またはできれば:子プロセスのアフィニティを設定するgdbコマンドはありますか?
gdb - gdbを使用してリモート信号を処理するには?
プログラムをリモートでデバッグしたい。しかし問題は、私のプログラムがシグナルを使用していることです。ローカル マシンでは、次のコマンドを使用してシグナルを処理します。
handle SIG64 nostop noprint
しかし、 gdbserver を使用してリモートでデバッグする場合、シグナルの処理方法がわかりません。これが私がやっていることです:
どんな助けでも大歓迎です。
ありがとう&BR、ユヴィ
c - gdb コア ファイル: クロス コンパイル時に共有ライブラリ ソース パスを検索する
私はクロスコンパイル環境で gdb を使用しており、多くの共有ライブラリを含むターゲット アーキテクチャ用の Linux ツリーを構築しています。
問題:コア ダンプを分析すると、gdb は .so ファイルとそのシンボルへのパスを見つけますが、ソース ファイルは見つけません。
ホストのセットアップ:
tree/<-- ルートを構築
tree/apps/myapp/myapp<--クラッシュするアプリ
tree/libs/mysharedlib/<-- 共有ライブラリはこのようなパスから構築され、target/ にインストールされます
tree/target/ <-- ターゲット ビルド ルート
tree/target/usr/bin/<-- クラッシュするバイナリがここに入る
tree/target/lib<-- いくつかの .so:s
tree/target/usr/lib<-- いくつかの .so:s
出力例:
gdb はデフォルトでソースファイルを検索する場所をどのように認識していますか?
gdb で 'directory' コマンドを使用してソース ディレクトリを手動で指定できることはわかっていますが、それは機能しますが、すべての共有ライブラリに対してそれを行いたくありません。すべてのものが構築されたルートを設定したいと思います。gdbserver を使用してライブ デバッグを行うと、gdb はすべての共有ライブラリのソースを自動的に検出するため、コア ファイルについても同じ動作が必要です。
バイナリのデバッグ情報で指定されているのは .c ファイル名だけですか、それともパスもありますか? 相対的か絶対か?