問題タブ [stack-trace]
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.
java - NullPointerException スタック トレースは、デバッグ エージェントなしでは利用できません
最近、NullPointerException を引き起こすバグを発見しました。例外は、標準の slf4j ステートメントを使用してキャッチされ、ログに記録されます。以下の要約コード:
ご覧のとおり、派手なものは何もありません。ただし、すべての例外ログ ステートメントのうち、スタック トレースを出力しないのはこの 1 つだけです。出力されるのは、メッセージ ("..." で表される) と例外クラスの名前 (java.lang.NullPointerException) だけです。
例外のスタック トレースは遅延ロードされるため、何らかの命令の並べ替えの問題があるのではないかと考え、ログ ステートメントの前に e.getStackTrace() を呼び出すことにしました。これは違いはありませんでした。
そこで、デバッグ エージェントを有効にして再起動することにしました。しかし、私もプロセスにアタッチしたため、スタック トレースが印刷されていることに気付きました。明らかに、デバッグ エージェントの存在により、いくつかの追加のデバッグ情報が利用可能になりました。
それ以来、例外の根本原因を修正しました。しかし、デバッガーなしでスタック トレースを利用できなかった理由を知りたいと思います。誰でも知っていますか?
明確化:これはロギングの問題ではありません。同じ try/catch 句を想像してみてください。ただし、catch では、次の値を出力します。
デバッガーがない場合、これは「0」を出力します。デバッガーを使用すると、正の数 (この場合は 9) が出力されます。
詳細: これは JDK 1.6.0_13、64 ビット、amd64、linux 2.6.9 で発生しています。
python - Pythonで関数のモジュールを呼び出す__name__を取得します
含まれていると仮定しmyapp/foo.pyます:
そしてmyapp/bar.py含まれています:
この場合、呼び出し元の関数'モジュール(' myapp.foo')の属性にcaller_name設定したいと思います。__name__これはどのように行うことができますか?
python - Python で元の例外のモジュール名を見つける
例:
上記の例では、例外は実際には myapp/util/url.py モジュールでスローされました。__name__そのモジュールを取得する方法はありますか?
私の意図は、これをlogging.getLogger関数で使用することです。
groovy - Groovy クラスのコンパイル時に奇妙なスタックトレースを取得する
Groovy で小さなテスト アプリをコーディングしています。次のコードがあります。
}
私はこのやや不可解なメッセージを受け取っています。
nojevive@follett:~/dev/code/mysmallapp$ grails generate-all アドレス Grails 1.1.1 へようこそ - http://grails.org/ Apache Standard License 2.0 の下でライセンス供与 Grails ホームは次のように設定されます: /home/nojevive/dev /grails
ベースディレクトリ: /home/nojevive/dev/code/mysmallapp 実行中のスクリプト /home/nojevive/dev/grails/scripts/GenerateAll.groovy 環境を開発に設定
groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []
at Project$__clinit__closure1.doCall(Project.groovy:11)
at Project$__clinit__closure1.doCall(Project.groovy)
at Project.getProperty(Project.groovy)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy:467)
at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _PluginDependencies_groovy$_run_closure6.doCall(_PluginDependencies_groovy:447)
at _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74)
at _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37)
at GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42)
at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334)
at gant.Gant$_dispatch_closure6.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:344)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:334)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:495)
at gant.Gant.processTargets(Gant.groovy:480)
Error loading plugin manager: No signature of method: java.lang.Integer.call() is applicable for argument types: () values: []
最初に、自分の番号が範囲外ではないかと考えました (1000000 でした)。それから、番号が組み込みの名前だと思ったので、residencenumber に名前を変更しました。しかし、運がありません。ここで何が欠けていますか?すべての制約を削除しましたが、同じメッセージです。したがって、私が推測する分野とは何の関係もありません。何かが壊れている必要がありますか?
java - 同じ例外を(たくさん)繰り返した後、log4jがスタックトレースを無効にするのはなぜですか?
お客様のインストールの1つで、同じ例外が何千回も発生しました。多くの適切にログに記録されたスタックトレース(9332)の後でも、例外の発生はログに記録されますが、スタックトレースはありません。Javaプロセスを再起動した後も、同じことが言えます。今回は17858のスタックトレースがあり、例外が発生しただけです。
ここにも同様の質問がありますが、答えはありません...
log4jの機能ですか、それともバグですか?(私は前者を信じています、なぜなら私は本当に好きなので、それらのapacheの人がすること)
何か案は?
java - スタック トレースを文字列に変換するにはどうすればよいですか?
Throwable.getStackTrace()結果をスタックトレースを表す文字列に変換する最も簡単な方法は何ですか?
python - Python コードのメソッドから現在のコール スタックを出力する
Python では、メソッド内から現在のコール スタックを出力するにはどうすればよいですか (デバッグ目的で)。
php - エラー時にPHPにバックトレースを生成させるにはどうすればよいですか?
デフォルトの現在の行のみのエラーメッセージを使用してPHPをデバッグしようとすると、ひどいことになります。エラーが発生したときにPHPにバックトレース(スタックトレース)を生成させるにはどうすればよいですか?
ruby - (eval:...)コードのソースを見つける
ある時点でスタックトレースを生成するコードがあります。
on_success_res_for_register定義されたソースを見つけるにはどうすればよいですか?コードはタイマーから呼び出され、関数コードのローカライズに問題があります。そのコマンドのソースを取得する方法はありますか?
また、そのようなスタックトレース行は、によってのみ生成されeval()ますか、それとも他の方法で可能ですか(send()のいくつかの副作用またはすべてのメソッド呼び出しをキャッチする何か?)