stack-trace相关内容
如何从我的 Android 应用程序获取崩溃数据(至少是堆栈跟踪)?至少在我自己的设备上工作时通过电缆检索,但理想情况下是从我的应用程序的任何实例中运行,以便我可以改进它并使其更可靠. 解决方案 你可以试试 ACRA(Application Crash Report forAndroid) 库: ACRA 是一个使 Android 应用程序能够自动将其崩溃报告发布到 GoogleDo
..
登录C#时,如何得知调用当前方法的方法名?我对 System.Reflection.MethodBase.GetCurrentMethod() 了如指掌,但我想在堆栈跟踪中更进一步.我已经考虑过解析堆栈跟踪,但我希望找到一种更清晰、更明确的方法,例如 Assembly.GetCallingAssembly() 但对于方法. 解决方案 试试这个: 使用 System.Diagnostics
..
我正在使用 GCC 编译器在 Linux 上工作.当我的 C++ 程序崩溃时,我希望它自动生成堆栈跟踪. 我的程序由许多不同的用户运行,它也可以在 Linux、Windows 和 Macintosh 上运行(所有版本都使用 gcc 编译). 我希望我的程序能够在崩溃时生成堆栈跟踪,下次用户运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我
..
我收到一个错误 无法加载 memtrack 模块(没有这样的文件或目录)未能在运行时加载 memtrack 模块:-2. 堆栈跟踪错误: E/SoundPool(1280):错误加载/system/media/audio/ui/Effect_Tick.oggE/SoundPool(1280):错误加载/system/media/audio/ui/KeypressStandard.oggE
..
有很多资料there 这表明打印异常的堆栈跟踪是不好的做法. 例如来自 Checkstyle 中的 RegexpSingleline 检查: 此检查可用于[...] 查找常见的不良做法,例如调用 ex.printStacktrace() 但是,我正在努力寻找任何可以提供正当理由的地方,因为堆栈跟踪对于跟踪导致异常的原因肯定非常有用.我知道的事情: 最终用户不应看到堆栈跟踪(
..
将 Throwable.getStackTrace() 的结果转换为描述堆栈跟踪的字符串的最简单方法是什么? 解决方案 可以使用以下方法将 Exception 堆栈跟踪转换为 String.此类在 Apache commons-lang 中可用,这是最常见的依赖库,具有许多流行的开源 org.apache.commons.lang.exception.ExceptionUtils.g
..
如何在 Java 中获取当前的堆栈跟踪,就像在 .NET 中一样做 Environment.StackTrace? 我找到了 Thread.dumpStack() 但这不是我想要的 - 我想找回堆栈跟踪,而不是打印出来. 解决方案 您可以使用 Thread.currentThread().getStackTrace(). 返回一组 StackTraceElements 表示程序
..
我需要找到一个方法的调用者.是否可以使用堆栈跟踪或反射? 解决方案 StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace() 根据 Javadoc: 数组的最后一个元素代表栈底,它是序列中最近的方法调用. StackTraceElement 具有 getClassName()
..
鉴于此堆栈跟踪代码段 引起:java.net.SocketException:软件导致连接中止:套接字写入错误 atjava.net.SocketOutputStream.socketWrite0(本机方法) 我试图回答以下问题: 什么代码抛出了这个异常?(JVM?/Tomcat?/我的代码?) 是什么导致抛出此异常? 关于#1: Sun 的 JVM 源不包含这
..
有时当我运行我的应用程序时,它会给我一个看起来像这样的错误: 线程“main"中的异常 java.lang.NullPointerException在 com.example.myproject.Book.getTitle(Book.java:16)在 com.example.myproject.Author.getBookTitles(Author.java:25)在 com.example.
..
我正在尝试使用 StackWalk64 在 x64 进程上遍历包含托管帧和本机帧的调用堆栈.一切正常,直到第一个或第二个托管框架,之后 StackWalk64 无法找出框架的返回地址并失败. 我将 SymFunctionTableAccess64 用于函数表访问回调,并且符号处理程序已使用 SymInitialize() 进行初始化.是否需要在 dbghelp 中执行一些魔术才能使其正确遍历
..
我最近在分析调用堆栈时犯了一个错误,因为我没想到应用程序是 64 位的.我使用了 WinDbg 命令 kb 来显示调用堆栈和传递给方法的参数. 在 64 位上,参数不是通过堆栈传递,而是在寄存器(RCX、RDX、R8 和 R9)中传递.似乎 WinDbg 没有或没有完全实现这一点.部分我猜这几乎是不可能的,因为寄存器值可能同时发生了变化. 但是,WinDbg 帮助仍将 kb 列为 Us
..
我需要从在 Linux 上运行的 64 位多线程 C++ 应用程序的信号处理程序打印堆栈跟踪.虽然我找到了几个代码示例,但没有一个可以编译.我的阻塞点是从 ucontext_t 结构中获取调用者的(生成信号的点)地址.我能找到的所有信息都指向 EIP 寄存器,即 ucontext.gregs[REG_EIP] 或 ucontext.eip.看起来它们都是 x86 特定的.我需要适用于 Intel
..
关于 C 调用约定和 64/32 位编译之间可能未定义的行为,我有一些奇怪的问题.首先是我的代码: int f() { return 0;}int main(){整数 x = 42;返回 f(x);} 如您所见,我使用参数调用 f 而 f 不带参数.我的第一个问题是这个参数在调用它时是否真的给了 f. 神秘的线条 经过一点 objdump 后,我得到了奇怪的结果.将 x 作为 f
..
有时当我运行我的应用程序时,它会给我一个看起来像这样的错误: 线程“main"中的异常 java.lang.NullPointerException在 com.example.myproject.Book.getTitle(Book.java:16)在 com.example.myproject.Author.getBookTitles(Author.java:25)在 com.example.
..
我试图调查控制台输出中的项目构建错误,如下所示: :myapp:processDebugResources FAILEDFAILURE:构建失败,出现异常.* 什么地方出了错:任务“:app:processDebugResources"执行失败.......* 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪.使用 --info 或 --debug 选项运行以获得更多日志输出. 我
..
如何在 Java 中获取当前的堆栈跟踪,就像在 .NET 中一样做 Environment.StackTrace? 我找到了 Thread.dumpStack() 但这不是我想要的 - 我想找回堆栈跟踪,而不是打印出来. 解决方案 您可以使用 Thread.currentThread().getStackTrace(). 返回一组 StackTraceElements 表示程序
..
我需要找到一个方法的调用者.是否可以使用堆栈跟踪或反射? 解决方案 StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace() 根据 Javadoc: 数组的最后一个元素代表栈底,它是序列中最近的方法调用. StackTraceElement 具有 getClassName()
..
鉴于此堆栈跟踪代码段 引起:java.net.SocketException:软件导致连接中止:套接字写入错误 atjava.net.SocketOutputStream.socketWrite0(本机方法) 我试图回答以下问题: 什么代码抛出了这个异常?(JVM?/Tomcat?/我的代码?) 是什么导致抛出此异常? 关于#1: Sun 的 JVM 源不包含这
..
有时当我运行我的应用程序时,它会给我一个看起来像这样的错误: 线程“main"中的异常 java.lang.NullPointerException在 com.example.myproject.Book.getTitle(Book.java:16)在 com.example.myproject.Author.getBookTitles(Author.java:25)在 com.example.
..