stack-trace相关内容

如何在 C 中获取堆栈跟踪?

我知道没有标准的 C 函数可以做到这一点.我想知道在 Windows 和 *nix 上有哪些技术?(Windows XP 是我现在最重要的操作系统.) 解决方案 glibc 提供了 backtrace() 函数. http://www.gnu.org/software/libc/manual/html_node/Backtraces.html ..
发布时间:2021-12-05 19:04:39 其他开发

在发布模式下显示 .NET 程序集的堆栈跟踪中的行数

有没有办法显示在发布模式下构建/部署的 .NET 程序集的堆栈跟踪中的行? 更新: 我的应用程序分为三个类库项目和一个ASP.NET“网站"项目.我试图追踪的错误是在三个类库项目之一中.我只为生成“对象引用未设置为对象的实例"错误的类库项目部署了 pdb 文件. 行号仍未显示在堆栈跟踪中.我是否需要为所有项目部署 pdb 文件以获取堆栈跟踪中的行号? 工作解决方案 为 ..
发布时间:2021-12-02 13:50:01 C#/.NET

如何在 Node.js 中打印堆栈跟踪?

有谁知道如何在 Node.js 中打印堆栈跟踪? 解决方案 任何 Error 对象都有一个 stack 成员,用于捕获其构造点. var stack = new Error().stack控制台日志(堆栈) 或者更简单: console.trace("我来了!") ..
发布时间:2021-12-01 22:21:15 前端开发

如何从我的 Android 应用程序获取崩溃数据?

如何从我的 Android 应用程序获取崩溃数据(至少是堆栈跟踪)?至少在我自己的设备上工作时通过电缆检索,但理想情况下是从我的应用程序的任何实例中运行,以便我可以改进它并使其更可靠. 解决方案 你可以试试 ACRA(Application Crash Report forAndroid) 库: ACRA 是一个使 Android 应用程序能够自动将其崩溃报告发布到 GoogleDo ..
发布时间:2021-12-01 11:44:43 移动开发

如何找到调用当前方法的方法?

登录C#时,如何得知调用当前方法的方法名?我对 System.Reflection.MethodBase.GetCurrentMethod() 了如指掌,但我想在堆栈跟踪中更进一步.我已经考虑过解析堆栈跟踪,但我希望找到一种更清晰、更明确的方法,例如 Assembly.GetCallingAssembly() 但对于方法. 解决方案 试试这个: 使用 System.Diagnostics ..
发布时间:2021-12-01 09:16:59 C#/.NET

当我的程序崩溃时如何自动生成堆栈跟踪

我正在使用 GCC 编译器在 Linux 上工作.当我的 C++ 程序崩溃时,我希望它自动生成堆栈跟踪. 我的程序由许多不同的用户运行,它也可以在 Linux、Windows 和 Macintosh 上运行(所有版本都使用 gcc 编译). 我希望我的程序能够在崩溃时生成堆栈跟踪,下次用户运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我 ..
发布时间:2021-11-30 11:17:48 C/C++开发

无法加载 memtrack 模块 Logcat 错误

我收到一个错误 无法加载 memtrack 模块(没有这样的文件或目录)未能在运行时加载 memtrack 模块:-2. 堆栈跟踪错误: E/SoundPool(1280):错误加载/system/media/audio/ui/Effect_Tick.oggE/SoundPool(1280):错误加载/system/media/audio/ui/KeypressStandard.oggE ..
发布时间:2021-11-27 19:11:28 移动开发

为什么 exception.printStackTrace() 被认为是不好的做法?

有很多资料there 这表明打印异常的堆栈跟踪是不好的做法. 例如来自 Checkstyle 中的 RegexpSingleline 检查: 此检查可用于[...] 查找常见的不良做法,例如调用 ex.printStacktrace() 但是,我正在努力寻找任何可以提供正当理由的地方,因为堆栈跟踪对于跟踪导致异常的原因肯定非常有用.我知道的事情: 最终用户不应看到堆栈跟踪( ..
发布时间:2021-11-25 19:04:25 Java Web开发

如何阅读和理解java堆栈跟踪?

例如,我得到了这样的堆栈跟踪: java.lang.NullPointerExceptionabc.investxa.presentation.controllers.UnixServerJobController.handleRequest(UnixServerJobController.java:66)org.springframework.web.servlet.mvc.SimpleCon ..
发布时间:2021-11-25 17:27:24 Java Web开发

如何将堆栈跟踪转换为字符串?

将 Throwable.getStackTrace() 的结果转换为描述堆栈跟踪的字符串的最简单方法是什么? 解决方案 可以使用以下方法将 Exception 堆栈跟踪转换为 String.此类在 Apache commons-lang 中可用,这是最常见的依赖库,具有许多流行的开源 org.apache.commons.lang.exception.ExceptionUtils.g ..
发布时间:2021-11-25 13:41:28 Java Web开发

如何在 Java 中获取当前堆栈跟踪?

如何在 Java 中获取当前的堆栈跟踪,就像在 .NET 中一样做 Environment.StackTrace? 我找到了 Thread.dumpStack() 但这不是我想要的 - 我想找回堆栈跟踪,而不是打印出来. 解决方案 您可以使用 Thread.currentThread().getStackTrace(). 返回一组 StackTraceElements 表示程序 ..
发布时间:2021-11-25 11:24:02 Java Web开发

如何使用堆栈跟踪或反射找到方法的调用者?

我需要找到一个方法的调用者.是否可以使用堆栈跟踪或反射? 解决方案 StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace() 根据 Javadoc: 数组的最后一个元素代表栈底,它是序列中最近的方法调用. StackTraceElement 具有 getClassName() ..
发布时间:2021-11-25 11:01:21 Java Web开发

“软件导致连接中止:套接字写入错误"的官方原因

鉴于此堆栈跟踪代码段 引起:java.net.SocketException:软件导致连接中止:套接字写入错误 atjava.net.SocketOutputStream.socketWrite0(本机方法) 我试图回答以下问题: 什么代码抛出了这个异常?(JVM?/Tomcat?/我的代码?) 是什么导致抛出此异常? 关于#1: Sun 的 JVM 源不包含这 ..
发布时间:2021-11-25 10:52:37 Java Web开发

您如何使用 dbghelp!StackWalk64 遍历混合模式(托管+本机)堆栈?

我正在尝试使用 StackWalk64 在 x64 进程上遍历包含托管帧和本机帧的调用堆栈.一切正常,直到第一个或第二个托管框架,之后 StackWalk64 无法找出框架的返回地址并失败. 我将 SymFunctionTableAccess64 用于函数表访问回调,并且符号处理程序已使用 SymInitialize() 进行初始化.是否需要在 dbghelp 中执行一些魔术才能使其正确遍历 ..
发布时间:2021-11-25 07:16:07 C#

kb 为 64 位进程显示什么?

我最近在分析调用堆栈时犯了一个错误,因为我没想到应用程序是 64 位的.我使用了 WinDbg 命令 kb 来显示调用堆栈和传递给方法的参数. 在 64 位上,参数不是通过堆栈传递,而是在寄存器(RCX、RDX、R8 和 R9)中传递.似乎 WinDbg 没有或没有完全实现这一点.部分我猜这几乎是不可能的,因为寄存器值可能同时发生了变化. 但是,WinDbg 帮助仍将 kb 列为 Us ..
发布时间:2021-11-25 06:00:18 C#

从信号处理程序打印堆栈跟踪

我需要从在 Linux 上运行的 64 位多线程 C++ 应用程序的信号处理程序打印堆栈跟踪.虽然我找到了几个代码示例,但没有一个可以编译.我的阻塞点是从 ucontext_t 结构中获取调用者的(生成信号的点)地址.我能找到的所有信息都指向 EIP 寄存器,即 ucontext.gregs[REG_EIP] 或 ucontext.eip.看起来它们都是 x86 特定的.我需要适用于 Intel ..
发布时间:2021-11-25 05:55:09 C#

调用不带参数的 C 函数

关于 C 调用约定和 64/32 位编译之间可能未定义的行为,我有一些奇怪的问题.首先是我的代码: int f() { return 0;}int main(){整数 x = 42;返回 f(x);} 如您所见,我使用参数调用 f 而 f 不带参数.我的第一个问题是这个参数在调用它时是否真的给了 f. 神秘的线条 经过一点 objdump 后,我得到了奇怪的结果.将 x 作为 f ..
发布时间:2021-11-25 00:10:32 C#