問題タブ [kgdb]
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 - KGDB、リモート接続エラー
私はKGDBに非常に慣れていません。ホストからターゲットを接続するときに問題が発生し、次のエラーが発生します。
p> #手順Imは次のとおりです。
#シリアル接続が双方向で機能することを確認します。以下を使用できます。
マシンの両側にメッセージが表示されます。そうでない場合は、ケーブルまたはドライバーに問題がある可能性があります。
カーネルをコンパイル
カーネル構成で KGDB* 、KGDB_SERIAL*、KGDB_USB*、DEBUG_INFO、DEBUG_INFO_DWARF4、MAGIC_SYSRQ を有効にします。コンパイルして TARGET にインストールします。
ここでの主な目的は、KGDB 機能を有効にして、vmlinux でデバッグ情報を保持することです。
エージェントとプロキシのセットアップ
agent-proxy は、TARGET のシリアル ポートのプロキシとして機能します。多重化のためにシリアルポートを分割します。1 つはプライマリ コンソール I/O 用で、もう 1 つは GDB セッション用です。したがって、両方を同時に処理できます。HOST マシンでエージェント プロキシを実行する必要があります。
これはリダイレクトします:
- TARGET のコンソールから HOST:5550 へ
- HOST:5551 への TARGET の kgdb リスニング ポート
デバッグを開始
まず、プライマリ コンソールを開きます。
次のいずれかの方法で kdb モードに入ります。
(KGDB: Registered I/O driver kgdboc が表示されるはずです。それ以外の場合は失敗しました)
ターゲットミッションでkgdbと入力すると、以下に示すように許可が拒否されたというエラーが表示されます
...、段階的に明確な回答をいただければ幸いです...、よろしくお願いします
c - リモート マシンで Linux カーネルをデバッグする方法は?
リモート マシンでカスタム Linux カーネルをデバッグする方法は?
もともと 5.6.8 からカスタムビルドされた Linux カーネルを備えたリモート マシンがあります。カーネルの下のシステムで、修正したい問題が発生しています。kgdb 関連のオプションは次のとおりです。
kgdboc
モジュールは組み込みでコンパイルされます。kgdbのドキュメントには、シリアル ポートで端末を使用する方法が記載されています。リモートマシンでの構成方法は次のとおりです。
ssh
私が発行した使用法
また、実行後gdb vminux
、リモート カーネルに接続するにはどのポートを使用すればよいですか?
debugging - デバッグ中にコードから割り込みが発生するのを防ぐにはどうすればよいですか?
現在、Linux カーネルをデバッグしており、kgdb で適切にセットアップされています。
デバッグしようとしている関数にブレークポイントを設定しました。何かを行うためにこのカーネル関数を必要とするプログラムを実行すると、ブレークが発生します。これは必要です。しかし、「n」または「si」を使用してコードをステップ実行しようとすると、常にすぐに arch/x86/include/asm/apic.h に到達し、割り込み処理コードとタイマーが実行されます。カーネルが高度に並列化されているため、実行中に他のコードに移動する必要があることは承知していますが、関数をより快適にステップスルーすることは可能ですか?
私が達成したいこと:
前:
->ラインA
B線
後:
ラインA
→ラインB
私が今持っているもの:
前:
->ラインA
B線
後:
ラインA
...ここで別のコードにジャンプします