社区
工具平台和程序库
帖子详情
VS2008 控制台应用程序ASSERT时,如何查看函数调用堆栈
chos2006
2011-09-08 04:32:28
我现在有一个VS2008的控制台应用程序,该程序用到了外部库。
程序运行时在库中引发了一个断言,然后程序就中断了,停留在引发断言的地方。
我能够看到断言是那个文件出来的,但是该文件是封在库中的,我没法知道问题是从哪里引发出来的。
所以我想查看此时程序的调用情况,请问该怎么办?
比如程序在异常的时候会有函数的调用堆栈可以看,有没有什么设置之类的,可以把断言当成异常的。
请教大侠指点,多谢!
...全文
1354
13
打赏
收藏
VS2008 控制台应用程序ASSERT时,如何查看函数调用堆栈
我现在有一个VS2008的控制台应用程序,该程序用到了外部库。 程序运行时在库中引发了一个断言,然后程序就中断了,停留在引发断言的地方。 我能够看到断言是那个文件出来的,但是该文件是封在库中的,我没法知道问题是从哪里引发出来的。 所以我想查看此时程序的调用情况,请问该怎么办? 比如程序在异常的时候会有函数的调用堆栈可以看,有没有什么设置之类的,可以把断言当成异常的。 请教大侠指点,多谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenwei0304
2012-12-04
打赏
举报
回复
如果是交互线程,且另外一个线程的影响,而产生了这个线程的中断。 1,查看发生交互的变量。 2,查看另一个线程的调用堆栈情况。
mujiok2003
2012-12-04
打赏
举报
回复
从Visual studio开始调试(F5或attach),等触发断言后,分析代码吧。引起异常的代码可能在本帧,有可能在若干帧之前,甚至在另外的栈,另外的进程,慢慢享受整个诊断的过程吧。
chenwei0304
2012-12-04
打赏
举报
回复
是不是标准库的断言,进入之后,偏离自己的程序太远了,所以,在当前的CALL STACK看不到自己的函数。异常的时候会引发一长串的函数调用。因为需要弹出对话框,而这个对话窗口是需要一长串的函数调用。所以,你就看不到自己的函数了。 办法之一:就是在很上层的函数中(不认识也没关系),设置一个端点,然后再次运行,看是否能够看到自己的函数。 如果不行,就继续办法之一,直到看到自己的函数为止。 理论上,不管函数调用多深,都能够得到所有函数调用的轨迹。只是有时候是进入库文件,只能看到汇编代码;有源文件的可以看到源代码。
chos2006
2011-09-15
打赏
举报
回复
没有人知道么?汗
luciferisnotsatan
2011-09-13
打赏
举报
回复
???
vs2005 调试,遇到断言中断后,可以看到call stack。
外部库,如果你没符号文件,没源码,当然没法像自己代码那么调。最多就是看汇编,call stack应该是一层层从某处开始的偏移量。
chos2006
2011-09-13
打赏
举报
回复
事实上,这个程序是MTK提供的,所以郁闷啊。其实我真正想问的问题是,中断后为什么没有call stack可以查看,所以也就不能找出问题究竟是从哪里引发的。正常情况下,只要中断,都会出现call stack的。所以怀疑与工具的设置有关。将别人的设置导入后,出现过call stack,但是后来不知道怎么搞的,又没有了。所以郁闷
chos2006
2011-09-13
打赏
举报
回复
这个窗口是有调出来的,程序发生异常时是能正常看到的,只是ASSERT后,看不到而已
就想叫yoko
2011-09-13
打赏
举报
回复
从楼主5楼的回复来看, 是不是没把call stack窗口调出来
中断后
alt+7
或者
菜单中 debug -> windows -> call stack
masterz
2011-09-09
打赏
举报
回复
看看
How to: Attach to a Running Process
一无所有自知之明
2011-09-08
打赏
举报
回复
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
ouyh12345
2011-09-08
打赏
举报
回复
中断后,可以查看调用堆栈啊
jackyjkchen
2011-09-08
打赏
举报
回复
调用堆栈不分exe还是dll吧,直接就能看,如果定位到标准库,别看标准库的,一直回溯到自己的代码
AndyZhang
2011-09-08
打赏
举报
回复
还是先找找自己程序的问题吧
FireBug
控制台
函数
FireBug
控制台
函数说明 FireBug 是一个非常实用的JavaScript以及DOM
查看
调试工具,是 Firefox 的一个插件。使用 FireBug 调试 AJAX 应用非常方便,终于可以告别 alert
时
代了!
js
控制台
输出的方法(详解)
console.log(object[, object, …]) 在
控制台
输出一条消息。如果有多个参数,输出
时
会用空格隔开这些参数。 第一个参数可以是一个包含格式化占位符输出的字符串,例如: console.log(“The %s jumped over %d tall buildings”, animal, count); 上面的例子可以用下面的无格式化占位符输出的代码替换: console.log(“The”, animal, “jumped over”, count, “tall buildings”); 并且,这两种方式是可以组合使用的。如果使用了格式化占位符,而提供的参数的个数多于占
RT-Thread常见问题
帮您解答RT-Thread操作系统开发中遇到的一些典型的问题
debug及打印日志源码.rar
调试及打印VC源代码
CUnit-2.1-2.rar_CUnit 秋枫林_cunit
CUnit提供了单元测试框架,并为常用的数据类型提供了丰富的断言语句支持
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章