问题标签 [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.
internet-explorer - IE 挂起 100% CPU / 得到堆栈跟踪
我遇到了 IE7 挂起访问我的网络应用程序的情况。根据George V. Reilly的出色建议,我安装了 WinDbg 来下载 IE 符号,设置 Process Explorer 以使用这些符号,然后使用 Process Explorer 获取挂起线程的堆栈跟踪。
我在下面粘贴了堆栈跟踪。更熟悉 IE 内部的人是否知道正在发生的事情,或者对如何进行此操作的建议?
javascript - 抛出异常时如何获取 JavaScript 堆栈跟踪?
如果我自己抛出一个 JavaScript 异常(例如,throw "AArrggg"
),我如何获得堆栈跟踪(在 Firebug 中或其他中)?现在我刚刚收到消息。
编辑:正如下面许多人发布的那样,可以获得JavaScript 异常的堆栈跟踪,但我想获得我的异常的堆栈跟踪。例如:
当foo
被调用时,我想获得一个堆栈跟踪,其中包括对foo
, bar
,的调用bar
。
android - 如何从我的 Android 应用程序中获取崩溃数据?
如何从我的 Android 应用程序中获取崩溃数据(至少是堆栈跟踪)?至少在通过电缆检索我自己的设备上工作时,但理想情况下是从我在野外运行的应用程序的任何实例中进行,以便我可以改进它并使其更加可靠。
c++ - 异常时的可移植 C++ 堆栈跟踪
我正在编写一个我希望可移植的库。因此,它不应该依赖于 glibc 或 Microsoft 扩展或任何其他不在标准中的东西。我有一个很好的从 std::exception 派生的类层次结构,我用它来处理逻辑和输入中的错误。知道在特定文件和行号处引发了特定类型的异常是有用的,但是知道执行是如何到达那里的可能更有价值,所以我一直在寻找获取堆栈跟踪的方法。
我知道在使用 execinfo.h 中的函数(参见问题 76822)和通过 Microsoft C++ 实现中的 StackWalk 接口(参见问题126450)针对 glibc 构建时,这些数据是可用的,但我非常想避免任何不便携。
我正在考虑以这种形式自己实现此功能:
这是一个可怕的想法吗?这意味着为每个函数添加 try/catch 块需要做很多工作,但我可以接受。当异常的原因是内存损坏或内存不足时,它不会起作用,但在那一点上你几乎已经搞砸了。如果堆栈中的某些函数没有捕获异常、将自身添加到列表中并重新抛出,它可能会提供误导性信息,但我至少可以保证我的所有库函数都这样做。与“真正的”堆栈跟踪不同,我不会在调用函数时获得行号,但至少我会有一些东西。
我主要担心的是,即使实际上没有抛出异常,这也会导致速度变慢。所有这些 try/catch 块是否需要对每个函数调用进行额外的设置和拆卸,或者在编译时以某种方式处理?还是有其他我没有考虑过的问题?
c# - 获取堆栈跟踪
当发生异常时,您可以打印出 StackTrace 并查看它。
如果您想在不发生异常的情况下获取 StackTrace 怎么办?
有没有办法做到这一点?
c# - 在发布模式下显示 .NET 程序集的堆栈跟踪中的行号
有没有办法在发布模式下显示 .NET 程序集构建/部署的堆栈跟踪中的行?
更新:
我的应用程序分为三个类库项目和一个 ASP.NET“网站”项目。我试图追查的错误是在三个类库项目之一中。我只为生成“对象引用未设置为对象的实例”错误的类库项目部署了 pdb 文件。
行号仍未显示在堆栈跟踪中。我是否需要为所有项目部署 pdb 文件以获取堆栈跟踪中的行号?
工作解决方案
为每个应用程序部署 pdb 文件修复了行号问题。
.net-3.5 - 使用 GAC 时如何获取用于登录生产的堆栈跟踪信息
我想在生产环境中获取用于记录异常等的堆栈跟踪(文件名和行号)信息。DLL 安装在 GAC 中。有没有办法做到这一点?
本文介绍了将 PDB 文件放入 GAC:
您可以轻松发现这些,因为他们会说您需要将调试符号(.pdb 文件)复制到 GAC。就其本身而言,这是行不通的。
我知道这篇文章是指使用 VS 进行调试,但我认为它也可能适用于记录堆栈跟踪。
除了取消选中他们说是可选的优化代码外,我已经按照说明回答了这个问题。
我将 dll 和 pdb 复制到 GAC 中,但仍然没有得到堆栈跟踪信息。这是我在堆栈跟踪的日志文件中得到的内容:
我正在使用 NLog。
我的 NLog 布局是:
${stacktrace:format=Raw} 是相关部分。
c++ - C++ 在异常时显示堆栈跟踪
如果抛出异常,我想有一种方法向用户报告堆栈跟踪。做这个的最好方式是什么?是否需要大量的额外代码?
回答问题:
如果可能的话,我希望它是便携式的。我希望弹出信息,以便用户可以复制堆栈跟踪并在出现错误时通过电子邮件将其发送给我。
.net - 每个堆栈跟踪行末尾的 + 符号是什么?
我想知道:在查看带有堆栈跟踪的 ASP.NET 错误页面时,您可以在每行的末尾看到一个 + 号和一个数字。
例如: 替代文本 http://employees.claritycon.com/spoov/SharepointDebuggingwithWSSV3_100BD/NiceStackTrace.jpg
同样在此问题中粘贴的跟踪中: “/”应用程序中的服务器错误
这些数字不是源文件中的行号,所以我怀疑它们类似于堆栈(或参数)大小。
java - 确定当前调用堆栈(用于诊断目的)
出于诊断目的,我有时需要存储导致给定状态转换(例如授予锁、提交事务等)的调用堆栈,以便以后出现问题时,我可以找出最初触发状态转换的人。
目前,我知道检索调用堆栈的唯一方法类似于以下代码片段,我认为它非常难看:
有人知道实现此目的的更好方法吗?