1

API(nodejsで記述)にエラーが発生したときにスタックトレース情報を表示するにはどうすればよいですか?私はcurlを使用して投稿を発行しました。

ノードのcliパラメーター--stack-trace-limitを試しましたが、わかりにくいワンライナーエラーメッセージ以外は何も表示されません。コードでconsole。*とデバッガーの行を使用できますが、時間がかかりすぎます。node-inspectorを試してみました。それは素晴らしいGUIを持っていますが、それはかなりクラッシュします。もっと簡単な方法が必要だと思いますか?

どうも。J

4

1 に答える 1

2

いくつかのコードを見なければ、具体的に答えるのは難しいです. ただし、次を使用してスタック トレースを取得することもできます。

var stack = new Error().stack

便利なモジュール

  1. Memwatchコード内のさまざまな場所でヒープ差分を出力するのに役立ちます
  2. node heapdump実行中のノード プロセスに送信しkill -SIGUSR2 [pid]てヒープダ​​ンプを生成できます。プロファイル タブを開き、左側のペインで右クリックして [プロファイルの読み込み] を選択すると、Chrome 開発者ツールで表示できます。
  3. 標準の v8 デバッガーはプロセスを次のように実行しnode debug module_name.jsますdebugger;
  4. node-webkit-agent Chrome 開発者ツール インターフェイスを使用して node.js アプリケーションをプロファイリングするヒープおよび CPU プロファイリング ツール。デバッグは現在サポートされていませんが、明らかに進行中です
  5. 長いスタック トレーススタックが関連付けられていないエラーが発生する場合があります。http リクエストでこの問題が発生することがあります。ロングジョンはこの問題を修正します
  6. node-ofeアプリが致命的にクラッシュしたときに自動的にヒープ ダンプを生成します

コード構造

非同期の node.js コードを記述する方法は、デバッグの容易さに大きな影響を与える可能性があります。名前付き関数は良いですが、匿名の高度にネストされた関数は良くありません。http://callbackhell.com/をチェックして、クリーンでデバッグ可能な node.js コードを作成する方法に関する優れたガイドを確認してください。

于 2013-03-18T02:30:00.643 に答える