問題タブ [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.

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

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と入力すると、以下に示すように許可が拒否されたというエラーが表示されます

...、段階的に明確な回答をいただければ幸いです...、よろしくお願いします

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

c - リモート マシンで Linux カーネルをデバッグする方法は?

リモート マシンでカスタム Linux カーネルをデバッグする方法は?

もともと 5.6.8 からカスタムビルドされた Linux カーネルを備えたリモート マシンがあります。カーネルの下のシステムで、修正したい問題が発生しています。kgdb 関連のオプションは次のとおりです。

kgdbocモジュールは組み込みでコンパイルされます。kgdbのドキュメントには、シリアル ポートで端末を使用する方法が記載されています。リモートマシンでの構成方法は次のとおりです。

ssh私が発行した使用法

また、実行後gdb vminux、リモート カーネルに接続するにはどのポートを使用すればよいですか?

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

debugging - デバッグ中にコードから割り込みが発生するのを防ぐにはどうすればよいですか?

現在、Linux カーネルをデバッグしており、kgdb で適切にセットアップされています。

デバッグしようとしている関数にブレークポイントを設定しました。何かを行うためにこのカーネル関数を必要とするプログラムを実行すると、ブレークが発生します。これは必要です。しかし、「n」または「si」を使用してコードをステップ実行しようとすると、常にすぐに arch/x86/include/asm/apic.h に到達し、割り込み処理コードとタイマーが実行されます。カーネルが高度に並列化されているため、実行中に他のコードに移動する必要があることは承知していますが、関数をより快適にステップスルーすることは可能ですか?

私が達成したいこと:

前:

->ラインA

B線

後:

ラインA

→ラインB

私が今持っているもの:

前:

->ラインA

B線

後:

ラインA

...ここで別のコードにジャンプします