問題タブ [gdb]
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.
gdb - 印刷方法gdb の変数
gdb は、ある種の変数に対して「不完全な型」を出力することがあります。これは何を意味し、どのようにその値を確認できますか?
c++ - gdb で長い文字列の完全な値を出力するにはどうすればよいですか?
GDB で C 文字列の全長を出力したい。デフォルトでは省略されていますが、GDB に文字列全体を出力させるにはどうすればよいですか?
python - Linux 上の Python の環境変数
環境変数への Python のアクセスは、プロセス環境に対するオペレーティング システムのビューを正確に反映していません。
os.getenv および os.environ は、特定のケースで期待どおりに機能しません。
実行中のプロセスの環境を適切に取得する方法はありますか?
私が言いたいことを示すために、2 つのほぼ同等のプログラム (最初は C で、もう 1 つは Python で) を取り上げます。
ここで、C プログラムを実行し、gdb を使用して実行中のプロセスにアタッチし、次のようにして内部の環境を強制的に変更するとします。
すると、前述の C プログラムが 5 秒ごとに「my value」を吐き出します。ただし、前述の python プログラムはそうではありません。
この場合、Python プログラムを C プログラムのように機能させる方法はありますか?
(はい、これは実行中のプロセスで実行する非常にあいまいで潜在的に損害を与えるアクションであることを認識しています)
また、私は現在python 2.4を使用していますが、これはpythonの新しいバージョンで修正されている可能性があります。
c++ - GDB で C++ ベクトルの要素を出力するにはどうすればよいですか?
GDBで a の内容を調べたいのですがstd::vector
、どうすればよいですか? std::vector<int>
簡単にするためにa だとしましょう。
c++ - GDB と C++ を使用したメモリ エラーのデバッグ
gdb で C++ プログラムを実行しています。私は gdb の経験はあまりありませんが、次のようなメッセージが表示されます。
これがどこで起こっているかを追跡するにはどうすればよいですか? メモリを表示しても、何の手がかりも得られません。
ありがとう!
debugging - GDBで関数の戻り値を調べる方法は?
戻り値が変数に割り当てられていないと仮定して、gdb で関数の戻り値を検査することは可能ですか?
c - gdb が ELF 64 ビット プログラムの実行に失敗し、「ファイル形式が認識されません」というメッセージが表示される
GDB を使用してデバッグしようとしています (迷惑なセグメンテーション違反を見つけるため)。私が実行すると:
コマンドラインから、次のエラーが表示されます。
私が実行すると:
次の情報を取得します。
私は GDB 6.1 を使用しており、実行可能ファイルは gcc バージョン 3.4.6 でコンパイルされています。
gdbの使用に関しては、私は少し水が足りませんが、私が知る限り、このインスタンスでは機能するはずです。何がうまくいかないのですか?
iphone - Objective-C オブジェクト (NSArray または NSDictionary) に格納されているデータをダンプする方法
ここでばかげた質問になる可能性があることをお許しください。ただし、他のプログラミング言語 (PHP や Perl などのスクリプト言語) では、多くの場合、変数に含まれるすべてのものを簡単にダンプできます。
たとえば、PHP にはvar_dump()
orprint_r()
関数があります。PerlにはData::Dumper
CPANクラスなどがあります。
Objective-Cにこのようなものはありますか? いくつかのケースでは、gdb を使用して各変数を検査する代わりに、そのようにすべてをダンプできると非常に便利です。
c++ - _dl_sysinfo_int80にぶら下がっているマルチスレッドアプリケーション
_dl_sysinfo_int80()の呼び出しでハングしているマルチスレッドアプリケーションがあります。gdbによると、すべてのスレッドがこの呼び出しでスタックしています。
スタックトレースの一番上は次のようになります。
これを引き起こしている可能性のあるアイデアはありますか?
c - 呼び出された関数の GDB 印刷制御フローを作成する
スタック内の深さに応じてインデントされた関数が呼び出されたときに、gdb が対象の関数を出力するようにするにはどうすればよいですか?
私は(でっち上げ)のようなことを言えるようになりたい:
そして、呼び出されたときに Foo または Bar で始まるすべての関数を gdb に出力させます。gnu cflow のようなものですが、デバッグ シンボルを使用し、実際に呼び出される関数のみを表示することを除いて、可能なすべての呼び出しフローではありません。
役に立たないツールには、関数が最も頻繁に呼び出された結果を並べ替える cachegrind、callgrind、および oprofile が含まれます。呼び出す順序を保持する必要があります。
多くの Foo および Bar 関数があるため、ワイルドカード (または同等のもの) は不可欠です。私は絶対にすべての機能を記録することに落ち着きますが. または、特定のライブラリにすべての関数を記録するように gdb に指示することもできます。
一部の GDB ウィザードには、この一般的なジョブのスクリプトが必要です!