問題タブ [backtrace]
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++ - _startの前に見られる関数呼び出しとバックトレースのmain
同僚から自分のプログラム(RHEL 5.3で実行されているqtアプリ)のバックトレースを受け取りました。それを分析していると、説明できないことがわかりました。このバックトレースを見ると、mainと_startのトレースに気付くでしょう。しかしその前に、私のプログラムにある_ZN19datalog_render_area9prepStripEhと_ZN12QMutexLockerD1Evが表示されます。_startとmainの前に関数の一部が呼び出されるのをどのように確認できますか。それは不可能ではありませんか?(私のバックトレースのレイアウトを許してください)
...プログラム外での関数呼び出し
php - PHP-関数トレースを取得する方法を知りたい
以前のすべての関数が私のコードのポイントの前に呼び出されたことを知る方法はありますか?例:プロジェクトのabc.phpにポイントを設定し、そのポイントに到達する前に呼び出されたすべての関数を取得したいとします。debug_backtrace()はここでは役に立ちません。本当にありがとう :)
c++ - GDB はスタックを表示できず、「#1 0x0000000000000000 in ?? ()」と表示されます
まれにデッドロックが発生するマルチスレッド C++ プログラムがあります。この問題は再現が難しく、リモート マシンでしか再現できません。この問題を解決するために使用したい方法は
- プログラムを実行する
- デッドロックを待つ
- コアダンプを生成するために中止信号を送信します
- ダンプをローカル マシンにコピーする
- gdb を使用してデバッグします
リモート マシンに gdb がなく、何もインストールできません。問題は、コア ダンプ (リモート マシンでデッドロックされたプロセスまたは正常に実行されているプロセスから取得) をデバッグしているときに、ほとんどのスレッドのバック トレースが次のようにしか表示されないことです。
「-g -O1」オプションでコンパイルされた静的にリンクされたバイナリを使用しています。ローカル マシンで同じバイナリのプロセスを中止すると、gdb はコア ダンプからスタック全体を抽出でき、そのような問題はありません (ただし、デッドロックは再現できません)。リモート マシンは SLES で、ローカル マシンは ubuntu です。
何か案が?
編集:
同じ問題を抱えている他の誰かを見つけましたが、まだ解決策はありません: http://groups.google.com/group/google-coredumper/browse_thread/thread/2ca9bcf9465d1050 (私は Google コアダンパーを使用していませんが、Google コアダンパーが失敗したようです同じエラーで、これはおそらく問題が SLES 11 にあることを示唆しています)
php - PHPUnit が xdebug バックトレースを隠すのはなぜですか?
PHPUnit と xdebug がインストールされており、CLI の php.ini ファイルには次のものがあります。
対話型コンソールを使用してエラーを作成すると xdebug バックトレースが出力されることを確認しましたが、phpunit の実行中にエラーが発生した場合、バックトレースはありませんか?
バックトレースに何が起こっていますか?phpunitは私からそれを隠していますか? 不足している設定はありますか?
ありがとう!
c - backtrace()/backtrace_symbols() に関数名を出力させる方法は?
Linux 固有backtrace()
でbacktrace_symbols()
、プログラムの呼び出しトレースを作成できます。ただし、プログラムの名前ではなく、関数アドレスのみを出力します。関数名も出力するにはどうすればよいですか?-g
と同様にプログラムをコンパイルしようとしました-ggdb
。以下のテストケースはこれを出力するだけです:
最初の 2 つの項目にも関数名を表示したいのですがfoo
、main
コード:
c++ - 名前空間のスタックトレースと関数
(c ++)プログラムの実行のある時点でバックトレースを取得しようとしています。
そのために、backtraceとbacktrace_symbolsを使用しています。この線に沿った何か:
動作しますが、一部の関数名が欠落しています。例:
関数0から8には1つの共通点があります:それらはすべて名前空間にあります...
関数9を匿名の名前空間に入れようとしました(他の変更なしで)そしてそれはバックトレースから消えます...これは次のようになります:
それを修正する方法はありますか?
ps:g ++のバージョン:g ++(GCC)4.6.0 20110530(Red Hat 4.6.0-9)
コードモンキーのコメントedit2が関数
edit3の完全なコードを追加した後、バックトレースの固定最大深度を編集します。コードは-O0 -g3でコンパイルされ、-rdynamicでリンクされます。
debugging - gdb バックトレースから情報を取得できません
Linux 64 ビット システムで実行されているリリース バージョンのサーバー プロセスがあります。クラッシュし、コアダンプ ファイルが残りました。gdb を使用して、次のようにデバッグします。
gdb svr コアダンプ ファイル
そして、次のバックトレースを取得しました:
addr2line でアドレス情報を分析できません。何が問題で、コアダンプの根本的な原因を見つけるにはどうすればよいですか?
ありがとう!
c - トレースを出力する独自の関数の書き方
その関数が呼び出されるまでトレースを出力するC関数を作成する方法。ライブラリを使いたくない。その仕事をするために自分のコードを書きたい。
誰かがこのタスクを達成するために入力してください。
php - フォーム投稿のPHPトレース
少し背景がありますが、過去12か月間にpython/djangoに変換されたレガシーphpサイトを持つクライアントがあります。ただし、段階的に廃止する間、彼らはまだphpサイトを使用しています。いくつかの新しいデータはまだユーザーから古いシステムとデータベース構造に収集されますが、クライアントはそれが新しいサイトでも利用できることを望んでいます。つまり、phpコードに別のmysql insertステートメントを挿入して、新しいサイトのデータベースに書き込みます。
したがって、問題はphp開発者がいなくなって到達できないことです。また、コードは、複数のディレクトリにある各phpファイルの複数のバージョン、ゼロバージョン管理の混乱です。したがって、データベースに書き込むコードフラグメントを見つけることができますが、それは20か所以上にあります。私がやりたいのは、djangoに匹敵するもので、POST時にフォームコードに「assertError」行を挿入し、djangoエラーレポートのトレースバックページを参照してください。ただし、これはphpです。それで、ここでの私の最良の選択肢は何ですか?私は最初はPython開発者であり、せいぜいphpハックであることを忘れないでください。あまりハッキングせずにある種のトレースバックを表示できるようにするPHPに組み込まれているものはありますか?