問題タブ [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 投票する
1 に答える
2688 参照

go - Golang filepath.Walk 大きなディレクトリでのパニック エラー

私が読んだCドライブ上のすべてのファイルをウォークスルーしようとしていますが、これGoでは非効率的ですが、ウォーク関数にnilエラーコードを返すように指示しているため、これを実行するとパニックエラーが発生し続ける理由がわかりません.

パニックエラー:

https://gobyexample.com/panic

実行時に発生するエラーをどのように処理しますか?

ありがとう!

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

go - Go の bufio が内部でパニックを使用するのはなぜですか?

bufioパッケージからコードを読むと、次のようなことがわかりました。

同時に、Effective Go セクションpanicは次の段落が含まれています。

これは単なる例ですが、実際のライブラリ関数はパニックを回避する必要があります。問題を隠したり回避したりできる場合は、プログラム全体を停止するよりも、実行を継続する方が常に優れています。

それで、特定のバッファリングされたリーダーの問題はpanic、標準ライブラリコードで呼び出しを引き起こすほど重要ですか?

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

go - golang:範囲外のインデックスエラーを処理するにはどうすればよいですか?

Go で CLI インターフェイス プログラムを作成しています。私のプログラムでは、ユーザーが引数としてファイル名を入力する必要があります。以下は、ユーザーが引数を入力しない状況を処理するために私が書いたコードです。しかし、パニックになり、「インデックスが範囲外です」というエラーが発生します。これをどのように処理すればよいですか?

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

ios - ソケットに関連する iOS カーネル パニックのトリアージ

多くの低レベルのソケット作業を行う iOS アプリがあり、最近 IPv6 サポートを追加した後、アプリの実行時にカーネル パニックが時々発生することに気付きました。デバイス全体が再起動し、多くの不可解な情報 (アプリからのスタック フレームがないことを含む) を含むパニック ファイルを取得しますが、ここに示すようにいくつかの重要な情報が含まれています。

幸いなことに、このモジュールはオープン ソースであり、近いバージョンのコードを見つけました: http://opensource.apple.com//source/xnu/xnu-2782.1.97/bsd/kern/uipc_socket.c

エラーはこの関数と一致しているようです:

基本的にアサートである最初の VERIFY() が失敗していると確信しています。

ただし、これは、このコードが実行される前に、一部のメモリがプログラムによって破損した可能性があることを示しています。そのため、ほとんどのメモリ破損と同様に、原因を突き止めるのは非常に困難です。

ログに基づいて、これは、socket()、connect()、read()、write() などのネットワーク呼び出しの後に発生することがわかりますが、ここでコードを示すことは現実的ではありません。

別の情報として、これは IPv6 でのみ発生します。IPv4 では、すべて問題なく動作します。しかし、私は IPv6 コードをスクラブしましたが、明らかに間違っているものは見つかりませんでした。また、ユーザー空間でのメモリ破損の問題がどのようにカーネルを失敗させるのか混乱しています。これがどのように発生するかを理解すると、問題を追跡するのに役立つかもしれません。

ほとんどの人が言う次のステップは、guard malloc を試すことですが、残念ながらそれをオンにしようとすると別の問題が発生するので、今のところ、guard malloc を使用できないと仮定します。

また、実行中にライブでプログラムにアタッチしてクラッシュさせようとしましたが、デバッガーで停止せず、デバイス全体 (iPad) を再起動するだけです。

このトリッキーなバグのトリアージのアイデアがある場合は、お知らせください。

編集:

回答の 1 つからのフィードバックに基づいて、関連するソケット API 呼び出しのすべての長さを確認しましたが、それらは正しいようです。したがって、ここには別の問題があり、おそらくメモリが上書きされているようです。

「Malloc Guard Edges」を使用してみることができましたが、問題が発生しなくなりました。「Guard Malloc」はシミュレーターでしか動作しないため使用できません。また、ハードウェアとのやり取りが原因で、アプリがシミュレーターでうまく動作しません。

誰かもっとアイデアがあれば、私に知らせてください。