1

api(用nodejs编写)出现错误时如何显示堆栈跟踪信息?我用 curl 发布了一个帖子顺便说一句。

我尝试了节点的 cli 参数 --stack-trace-limit,但除了不友好的单行错误消息外,什么都没有显示。我可以在代码中使用 console.* 和调试器行,但这太耗时了。我试过节点检查器。虽然它有一个不错的 GUI,但它会崩溃。我认为必须有一个更简单的方法?

谢谢。Ĵ

4

1 回答 1

2

如果没有看到一些代码,很难具体回答。但是,您也可以使用以下方法获取堆栈跟踪

var stack = new Error().stack

有用的模块

  1. Memwatch可用于在代码中的不同位置输出堆差异
  2. node heapdump允许您发送一个kill -SIGUSR2 [pid]到正在运行的节点进程以生成一个 heapdump,然后可以通过打开配置文件选项卡并右键单击左窗格并选择加载配置文件在 Chrome 开发人员工具中查看
  3. 标准 v8 调试器使用node debug module_name.jsThen运行您的进程debugger;
  4. node-webkit-agent一个堆和 cpu 分析工具,它使用 Chrome 开发者工具界面来分析你的 node.js 应用程序。目前不支持调试,但显然正在进行中
  5. 长堆栈跟踪有时您可能会遇到没有任何堆栈关联的错误。有时我对http请求有这个问题。Longjohn 解决了这个问题
  6. node-ofe当您的应用程序致命崩溃时自动生成堆转储

代码结构

编写异步 node.js 代码的方式会对调试的难易程度产生很大影响。命名函数很好,匿名的高度嵌套函数很糟糕。查看http://callbackhell.com/以获得有关如何编写干净的可调试 node.js 代码的良好指南

于 2013-03-18T02:30:00.643 回答