stack-trace相关内容
由于一些错误在我们的产品操作的一部分,我们希望某些转储的堆栈跟踪信息。然而,我们的经验,很多用户会简单地采取错误消息对话框的截图,而不是向我们报告全文可从程序副本,因此我想在这对话框中提供一些最起码的堆栈跟踪信息。 在我的机器上的.NET堆栈跟踪看起来是这样的: 在System.IO .__ Error.WinIOError(的Int32错误code,字符串maybeFullPath) 在Sy
..
我重新抛出异常与“扔;”,但堆栈跟踪不正确: 静态无效的主要(字串[] args){ 尝试{ 尝试{ 抛出新的异常(“测试”); // 12号线 } 赶上(例外前){ 扔; // 15号线 } } 赶上(例外前){ System.Diagno
..
我已经阅读(看到这里)认为,“普遍做法”,以使用打印堆栈跟踪回溯()故障信号处理过程中(如操作时 SIGSEGV ),在Linux下是: 1获得从无证 sigcontext EIP 或 RIP ) / code>结构。 2更换与指令指针堆栈跟踪第二帧,因为第一帧是信号处理程序,而第二个框架应该是在的libc 中在的sigaction code,这已经覆盖了发生故障的原始帧。 3打印回溯来自新
..
我需要在某些点上我的C应用程序的堆栈信息。我读过的文档和搜索的网络,但仍然想不通我怎么能做到这一点。您可以指向一个简单的过程解释?或者,甚至更好,栈展开的一个例子。我需要它适用于HP-UX(安腾)和Linux。 解决方案 查看的Linux / stacktrace.h 下面是一个API参考: HTTP://www.cs。 cmu.edu/afs/cs/Web/People/tekkot
..
让我们说,我叉我的程序中的一个子进程。在某些时候,我用暂停子进程杀死(儿童,SIGSTOP)并要检查堆栈的内容。有没有一种方法以编程方式从母公司获得一个子进程的堆栈跟踪? 我知道 ptrace的是跟踪一个子进程,并检查它的内存/寄存器的标准方法。我也知道,回溯提供此功能的的呼叫的线程。是否有合并这些功能的函数或库?或者,我需要手动走与堆栈 ptrace的? 解决方案 要回答我的问题 -
..
回溯功能设置就给回溯如何将它与函数名/文件名/行号映射? 为前: - 回溯()返回的8个地址 ./libtst.so(myfunc5+0x2b)0xb7767767] ./libtst.so(fun4+0x4a)0xb7767831] ./libtst.so(fun3+0x48)0xb776787f] ./libtst.so(fun2+0x35)0xb77678ba] ./libtst.so(
..
假设我有以下几点: typedef结构{ 字符*名称; 焦炭约束力; INT地址; } // Fn_Symbol函数符号的定义静态Fn_Symbol * fnSymbols; //函数符号的阵列中的文件 师资队伍现状INT总; //象征功能的阵列和文件数量静态无效PrintBacktrace(INT sigum,siginfo_t * SIGINFO,无效*上下文) {
..
如果你是幸运的,当你的内核模块崩溃,你会得到与大量的信息,日志一个oops如寄存器等这样的一个信息是堆栈跟踪值(这同样适用于核心转储真,但我本来问这个内核模块)。拿这个例子: [< f97ade02>] skink_free_devices + 0x32 / 0XB0 [skin_kernel] 并[d f97aba45]的计算值?在cleanup_module + 0x1e5 /
..
我得到了一个家庭作业,要求我调用一个函数没有显式调用它,使用缓冲区溢出。在code基本上是这样的: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT;无效克() { 的printf(“现在内克()\\ n!”); } 无效F() { 的printf(“现在里面的F()\\ n!”); //只能修改本节 //调用斜面克(),
..
我处理SIGSEGV由code: INT C() { 为int * I = NULL; * I = 10; //出现崩溃 }INT B() { 返回C(); }INT A() { 返回B(); }INT主要(无效) { 结构sigaction的处理程序; memset的(安培;处理器,0,sizeof的(处理)); handler.sa_sigaction = h
..
现在我使用的功能是这样的: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&; SYS / wait.h> #包括LT&;&unistd.h中GT;无效print_trace(){ CHAR pid_buf [30]; sprintf的(pid_buf,“--pid =%d个”,GETPID()); 焦炭na
..
我知道有没有标准的C函数来做到这一点。我想知道什么是技术,这在Windows和* nix? (Windows XP中是我做这个,现在最重要的操作系统。) 解决方案 我们已经使用这个为我们的项目:
..
我习惯了有一个堆栈跟踪出现在控制台的时候我不明白一个例外,它抛出回的主要功能。有没有一种构建以x code 4.2,我没有上的某个地方设置?现在,它显示什么在控制台的。 解决方案 尝试在异常增加一个断点。 单击断点的选项卡(CMD + 6) 单击('+')按钮,左下角的添加。 单击“添加例外断点......” 将默认设置并单击完成。 现在,当抛出一个异常,应该送你进入调试
..
像 为((;;)){ GDB -batch -n -ex“设置分页关”-ex“线程应用所有BT的ffplay_g`的pidof ffplay_g`>>的/ tmp / QQ; } ,但速度更快,无需每次都重新加载GDB和符号? 回溯需要由定时器,而不是由触发一些断点服用。 解决方案 所推荐的评论如果你想坚持使用gdb,那么为什么不脚本GDB会话?您的控制器进程可以睡5
..
在Python中,我可以使用装饰跟踪函数调用,它的变量和返回值。 这是非常容易使用。 我只是想知道能C#做同样的事情? 我发现有CallTracing样本code在线属性。 但是,它并没有显示结果我的预期。 C#的属性是否也有类似的概念Python的装饰? 谢谢您 和祝商祺! [AttributeUsage(AttributeTargets.Method | AttributeT
..
这清楚为什么堆栈跟踪与微软的新编程范式的影响。我们现在有一个语义栈和物理夫妇的那些(我选择的话)。 我能看到却是一个例外的堆栈跟踪属性(并在调试器)是物理的人,连在一起: 专用异步任务CheckFooAndBar() { VAR日志= LogManager.GetLogger(“测试”); log.Info(“CheckFooAndBar”); 尝试 {
..
我用的是异步/等待释放我的UI线程和多线程完成。现在我有一个问题,当我打了一个例外。我的异步部分调用堆栈与百达 ThreadPoolWorkQue.Dipatch开始(),这并不能帮助我非常多 我发现了一个MSDN,文章安德鲁Stasyuk。这件事,但是我的理解是,因果异步链追溯它不是一个准备使用的解决方案。 什么是如果你使用与异步/多线程等待调试的最佳/最简单的方法是什么? 解决方案
..
我有一个应用程序的WebAPI下面的示例code设置: [HTTPGET] 公共双GetValueAction() { 返回this.GetValue()结果。 }公共异步任务<双>的GetValue() { 返回等待this.GetValue2()ConfigureAwait(假)。 }公共异步任务<双> GetValue2() { 抛出新的I
..
我使用的是低于code得到调用方法的名称和它的一个方法中的参数。 VAR堆栈跟踪=新的堆栈跟踪(); VAR方法名= stackTrace.GetFrame(1).GetMethod()名称。 变种参数= stackTrace.GetFrame(1).GetMethod()GetParameters();的foreach(在参数VAR信息参数) { 变量名称= parameterInf
..
我已经把下面的code在.aspx页面: <%@页面语言=“C#”AutoEventWireup =“真”继承=“CarWale.CarDataIO.MasterDataEntry”跟踪=“真正的”%GT; !< DOCTYPE HTML PUBLIC“ - // W3C // DTD XHTML 1.0过渡// EN”“http://www.w3.org/TR/xhtml1/
..