問題タブ [pstack]
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.
c - Solaris で BACKTRACE (関数 + 行番号) を取得するには?
関数名と行番号を含む完全なバックトレースをログ ファイルに送信するコードを C で作成しました。
これは、LINUX で backtrace、backtrace_symbols、および dladdr と ADDR2LINE を組み合わせて使用して行われました。また、Linuxで「execinfo.h」を使用しています....
したがって、本質的には次のとおりです。
バックトレース: 行の場所:
コードを Solaris に移した今、サポートされていないことがわかりました ;-(
Solaris で pstack アプローチを試してみたところ、次のような結果が得られました。
上記を何らかの方法で使用して、行番号と関数名もプログラム的に取得するにはどうすればよいですか? 「walkcontext」または「walkstack」について何かを見たことがあります....行番号などを取得するためのサンプルコードはありますか?
また、私は Linux で ADDR2LINE を使用しましたが、うまく機能します。上記の DUMP から Solaris で使用する方法を誰か教えてもらえますか? 私はそれを動作させることができません;-(
どんなアドバイスでも大歓迎です
ありがとう
リントン
unix - 条件を数回チェックした後にプロセスを強制終了し、定期的に実行する Unix スクリプト
コマンドを 80 秒ごとに 3 回実行する UNIX シェル スクリプトを作成し、すべてのシーケンスをテキスト ファイルの別の行に書き込みたいと考えています。また、すべての結果が1行に10以上ある場合は、プロセスを強制終了したい:
例えば:
また
出力ファイル:
出力シーケンスが「10 10 11」、「10 11 12」などの場合、プロセスを再度強制終了する必要があることに注意してください。しかし、「9 9 10」のようなものであれば、殺す必要はありません。
solaris - Solaris p シリーズ コマンド (pstack、pmap) の副作用を知っている人はいますか?
現在、prod の問題を調査していますが、調査によって通常の prod 環境に副作用が発生しないことを期待しているため、実行中のプログラムが短時間でも一時停止することはありますか? ありがとう
debug-symbols - pstack で libc6-dbg のデバッグ シンボルを使用するにはどうすればよいですか?
libc6-dbg がインストールされていますが、pstack には次のように表示されます。
(/lib/x86_64-linux-gnu/libc.so.6 にシンボルが見つかりません)
シンボルを見つける場所をどのように伝えるのですか?
linux - pstack コマンドを使用して最後の n 行のスタックを取得するにはどうすればよいですか?
C++ コードで pstack コマンドを使用し、文字列に格納しています。問題は、最後の関数までのスタックを出力し、文字列が非常に重くなることです。pstack を使用してスタックの最後の n 行のみを出力する方法はありますか?
pstack を使用して実行できない場合、この目的を解決する他の方法はありますか?
pstack - pstack show クエスチョン マーク
Linux で pstack {pid} を実行すると、ときどき ?? と表示されます。いくつかの記録のために。その理由は何ですか?最適化するだけの場合、実際の関連コードをどのように知ることができますか?
linux - Linux プロセスがビジーでアタッチできないのはなぜですか (ptrace など)?
マルチコア RHEL6 では、デッドループに FIFO リアルタイム プロセスがあるため、コア上のすべての CPU リソースを占有します (プロセスはコアにバインドされます)。ただし、他のコアはかなり問題ありません。
この時点で、デッドループのプロセスの pstack は何も出力できませんでした。同時に、他のプロセスの pstack は正常に機能します。
理由を教えてください。
ありがとう!
solaris - Solaris のコア ダンプで使用できない pstack 出力
コアダンプに適用される pstack の出力には、すべてのスレッドのスタック バックトレースが含まれている必要があります。ただし、場合によっては、各スレッドの切り捨てられたバックトレースが出力に含まれ、スレッドごとに 1 つのエントリのみが含まれます。次に、pstack 出力の抜粋を示す例を示します。
ご覧のとおり、LWP ごとに 1 行しかなく、通常はここで完全なバックトレースを取得します。また、いくつかのスレッドに有効なマングルされた C++ シンボルがあることにも気付くかもしれません。これはおそらく、コア ダンプの時点でプロセッサがアプリケーション コードを実行していたためです。しかし、なぜすべてのバックトレースが切り捨てられるのでしょうか?
これが最後に発生したとき、同じコア ダンプに適用された pflags によると、障害のあるスレッドが SIGABRT をスローしました。
コア ダンプ用の十分なディスク容量があり、コア ダンプを書き込む権限に問題はありません。マシンは 32 コアの Sparc、SunOS 5.10 Generic_144488-17 です。アプリケーションは gcc 4.7.2 でビルドされています。
php - cron の実行によってアクセスされるコードを変更する
毎日さまざまな時間にいくつかのcronを実行しています。時折、いずれかが「スタック」し、そのプロセスが停止することはありません。これは一定ではありませんが、いくつかの cron がアクセスする別のファイルの関数を変更した後、回数が著しく増加しました。常に同じファイルではなく、常に同時にではなく、ファイルを手動で実行すると正常に動作します。
私の質問:
この外部ファイルを変更すると、実行中の cron が変更を取得するはずですよね? (試してみましたが機能しないので、機能しないか、コードのその時点に到達しなかったため、2番目の質問になります:)
実行中の cron のスタック トレースを出力して、どこでスタックしたかを確認するにはどうすればよいですか? Linux、Centos バージョン 7 で実行
編集: pstack
main() を提供してくれます - どうすればそれよりも先に進むことができますか?
助けてくれてありがとう!
debugging - Amazon Linux AMI への gdb と pstack のインストール
Amazon Linux AMI を使用して EC2 インスタンスに gdb と pstack をインストールしようとしましたが (デフォルトではインストールされませんでした)、うまくいきません。
試した:
gdb tar を手動で AMI に配置してコンパイルしようとしましたが、うまくいきませんでした。AMI の RPM を入手する場所がわからない。パッケージはどこからダウンロードしますか?
GDB と pstack を AMI にインストールする方法を教えてもらえますか?