stack-trace相关内容

如何从我的 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开发

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

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

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

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

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

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

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

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

构建 Android Studio 项目时如何添加 Stacktrace 或调试选项

我试图调查控制台输出中的项目构建错误,如下所示: :myapp:processDebugResources FAILEDFAILURE:构建失败,出现异常.* 什么地方出了错:任务“:app:processDebugResources"执行失败.......* 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪.使用 --info 或 --debug 选项运行以获得更多日志输出. 我 ..
发布时间:2021-11-21 17:47:35 移动开发

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

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

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

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