問題タブ [panic]

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 投票する
2 に答える
2063 参照

linux-kernel - modprode ドライバーを試行した後、「null でのカーネル null ポインターの逆参照を処理できません」

起動時にドライバーを初期化するスクリプトがあり、カーネル トレースを有効にしてカーネルを再コンパイルし、ソフトウェアの問題をデバッグする前に問題なく動作しました。何らかの方法 (modprobe、insmod など) でドライバーを初期化しようとすると、次の出力が画面に出力されます。

何が起こっているかについてのヒントは大歓迎です!

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

pointers - Golang : リスト要素から値を取得する

http://play.golang.org/p/TE02wFCprM

リストからの構造体から値を取得しようとすると、エラーパニックが発生します。

私がしたことは、リストを作成し、リストに構造を追加することです。リストから要素を取得すると、それはインターフェイス型になります。それでも、インターフェース型の値全体を出力すると、構造体の値が含まれています。そのため、構造体の値を 1 つ取得しようとしましたが、パニック エラーが発生しました。

このラインはうまく機能しています。

コードはこちら

リストに構造を保存し、リストに保存されている構造の 1 つから特定の値を取得できるようにしたいと考えています。

どうすればできますか?

前もって感謝します。

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

go - Golang での安全なクローズ接続

ソケット接続を開くと、ソケットを開いた直後に socket.Close() ロジックを defer 関数に入れます。しかし、socket.Close() が別のパニックを引き起こすとしたら? プログラムのクラッシュを防ぐために、常に別の defer/recover を外側の defer 内にネストする必要がありますか? このようなもの: http://play.golang.org/p/GnEMQS-0jj

ありがとう、エルグ

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

linux-kernel - カーネルがパニックに陥ったことを知るには?

カーネル パニックを監視できるようにしたい - カーネル パニックが発生したかどうか、いつ発生したかを把握したい。
マシンの起動後に、カーネル パニックが原因でダウンしたことを知る方法はありますか (たとえば、再起動の命令や電源障害ではありません)。

マシンは KDUMP や KDB で構成されている可能性がありますが、どちらかがインストールされている、またはインストールされていないと仮定したくありません。

カーネルにパッチを適用することはオプションですが、私はそれを避けたいと思っています。でも、やったとしても、パッチで何ができるのかわからない。

私はカーネル 2.6.18 を使用しています (古い、私は知っています)。新しいカーネルのソリューションも興味深いかもしれません。

ありがとう。

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

linux - カスタム ebtables モジュール && skb 操作 && カーネル パニック

少し前に、Ashwin Kashyap による vnat モジュールに基づいて ebtables モジュールを実装しました ( http://www.research.rutgers.edu/~ashwink/misc_projs/ebt_vnat.html)。モジュールは、vlan タグを削除し、vlan id を nf マークに入れるために、brout テーブルの BROUTING チェーンで使用できます。モジュールでは、nat テーブルの POSTROUTING チェーンの nf マーク値に基づいて vlan タグを追加することもできます。モジュールには、ブリッジされたトラフィックでの作業に問題はありません。システムは非常に安定しています。ミックスに tproxy インターセプトを追加するとすぐに問題が始まります。これにより、しばらく操作した後にカーネル パニックが発生します。トラフィック ストリームが tproxied された数分後、最初のパケットの後にカーネル パニックが発生しないという事実を強調します。SKB をマングルする方法は、L3+ 処理に対して十分にクリーンではないようです。ところで、私は 2.6.32 カーネルに取り組んでいます。以下のコメントでモジュールの重要な部分を見つけてください。

ポインターに感謝します(少なくとも64ビットの長さである限り)。ありがとう!

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

linux - カーネルパニックの後、システムが存続する可能性はありますか?

昨日、アプリケーションを実行しているときに、syslogカーネル パニックのように見えるコンソール ブロードキャストが表示され、コンソールが応答しなくなりました。今日、サーバーに接続できることに気付きました。実行すると、システムが数日間putty稼働していることがわかります。uptime実行するdmesgoom_killerログとログが表示されますが、システムが再起動され、カーネルパニックの痕跡がまったくないOopsことを期待していました。dmesgだから今私は混乱しています、カーネルパニックがありましたか? はいの場合、システムが再起動されていないように見える (数日間稼働している) のに、どうしてサーバーに接続できるのでしょうか。いいえの場合、サーバーに接続できるのはなぜですか? 手動で再起動するまでサーバーをフリーズするべきではありませんか?

0 投票する
2 に答える
1005 参照

linux-kernel - kmalloced バッファーで deferred_io を使用するとカーネル パニックが発生する

ARM で SPI LCD ディスプレイ用のフレームバッファを作成しています。それを完了する前に、メモリのみのドライバーを作成し、Ubuntu (Intel、Virtualbox) で試してみました。ドライバーは正常に動作します - kmalloc を使用してメモリのブロックを割り当て、ページを整列させ (実際にはページを整列させます)、フレームバッファー システムを使用して /dev/fb1 を作成しました。関連する場合は、独自の mmap 関数があります (deferred_io はそれを無視し、見た目によって独自のものを使用します)。

私は設定しました:

テストプログラムで /dev/fb1 を開いて mmap すると、正しく動作します。fb1を「共有」するためにx11vncが何が起こっているかを見ることができます:

そして、vnc ビューアーで表示します。

mmapd バッファー全体に書き込むことで、オーバーフローがないことを確認しましたが、問題ないようです。

deferred_io を追加すると問題が発生します。テストとして、1 秒の遅延があり、呼び出された deferred_io 関数は pr_devel() の出力以外は何もしません。docsに従いました。

これで、テスト プログラムは /dev/fb1 を正常に開き、mmap は OK を返しますが、そのポインターに書き込むとすぐにカーネル パニックが発生します。次のダンプは実際には ARM マシンからのものですが、Ubuntu VM でもパニックになります。

私は完全に困惑しています - 他のドライバーは多かれ少なかれ私のものと同じように見えますが、私はそれらがうまくいくと思います. ほとんどの場合、実際には vmalloc を使用します。この目的で kmalloc と vmalloc に違いはありますか?

0 投票する
0 に答える
4860 参照

oop - PANIC: "Oops: 0000 [#1]" (詳細についてはログを確認してください) - 更新されたカーネル テスト済み

繰り返し可能なシステム クラッシュを解釈しようとしていますが、それほど頻繁ではありません。サードパーティのドライバーと光学式スキャン デバイスに関係があると思います。スキャン デバイスのドライバーが原因でハングが発生しているのか、USB ドライバーでハングの原因となっているのか、それともまったく別のものなのかはわかりません。

私はドライバー開発者ではないので、ここにある Linux Kernel Crash Book を読みながら、クラッシュ ダンプを手探りで調べています - http://rogunix.com/docs/Reversing&Exploiting/Linux_Kernel_Crash_Book.pdf

kexec ツールを使用してデバッグ カーネルをセットアップし、vmcore を生成することができました。クラッシュすると、パニックが表示されます: "Oops: 0000 [#1]" (詳細についてはログを確認してください)。ログには、バグが表示されます: 仮想アドレス 00100100 でカーネル ページング要求を処理できません。

ドライバーの開発者に戻って調査結果を伝えることができるように、ダンプをさらに解釈するのを手伝ってもらえますか、それともドライバーではないことを教えてもらえますか。

これがダンプからの詳細です。よろしくお願いします。

クラッシュ> bt

クラッシュ > ログ

更新されたカーネルのテスト済み

その後、最新の CentOS 5.5 リリース カーネル (2.6.18-371.6.1) に更新しましたが、それでもカーネル パニックが発生します。ただし、今回は「swapper」ではなく、コマンド「khubd」でパニックが発生しました。ダンプをキャプチャすることができました。以下に、この問題を特定するための関連情報を提供したいと思います。カーネルのバグですか、それともドライバーの何かですか?

クラッシュ> bt

クラッシュ > ログ (切り捨て)