C++(MSVC) 下查看call strack trace;查看函数是否被inline_C/C++_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
高手
循环
class
异步
译码
编码
哈夫曼
冒泡排序
版本
Flex
缓存
HTTP
内存
堆栈
成段更新
高手
循环
class
异步
译码
编码
哈夫曼
冒泡排序
版本
Flex
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
C/C++
> C++(MSVC) 下查看call strack trace;查看函数是否被inline
C++(MSVC) 下查看call strack trace;查看函数是否被inline
2014/9/20 21:12:31 cherishLC
程序员俱乐部
我要评论(
0
)
摘要:
最近写C++程序,,各种不知道错误出在哪一行,即使输出了行号,也没用,因为不知道哪一次调用出的错,程序bug处离调用位置很远,要调程序不得不一行行的调!后来发现个好东西:StackWalker(仅限MSVC):http://www.codeproject.com/Articles/11132/Walking-the-callstack另有GCC版本:http://stackoverflow.com/questions/691719/c-display-stack-trace-on
标签:
函数
c++
all
最近写C++程序,,各种不知道
错误
出在哪一行,即使输出了行号,也没用,因为不知道哪一次调用出的错,程序bug处离调用位置很远,要调程序不得不一行行的调!
后来
发现
个好东西:
StackWalker(仅限MSVC): http://www.code
project
.com/Articles/11132/Walking-the-callstack
另有GCC
版本
:http://stackoverflow.com/questions/691719/c-display-stack-trace-on-exception
1、用StackWalker进行调试
从本文的第一链接里或者本文附件下载StackWalker,新建一个工程,直接运行即可看到示例的结果。
结果会被输出到两个地方:
1、控制台,这是由于我们
重载
了StackWalker类的OnOutput()方法;
2、Visual
Studio
的Output的
debug
窗口(debug时直接可见,release时默认显示的是输出为build信息)
下面这张图对应的是debug版本的输出(最后几行),可以看到最后的几行对应函数的调用顺序~
下面是对应的代码:
2、用StackWalker查看函数是否被inline
发现这东西除了用来调试bug外,还有一个用途———— 查看函数是否被
inline
了!
还是刚才的示例程序,改成release版本,输出变成了下面这样——TestCurrentThread,Func2,Func3,Func4都不见了!只剩下Func5!说明那些函数被inline了~
再来看看使用
__forceinline
后的效果:
class='magplus' title='点击查看原始大小图片' />
大小: 40.9 KB
大小: 42.6 KB
大小: 26.3 KB
大小: 54.7 KB
大小: 66 KB
StackWalker.zip (64.2 KB)
下载次数: 0
查看图片附件
相关文章
·
C++(MSVC) 下查看call st
·
C++的语法的相关简述
·
C#静态类,静态构造函数,静态变量
·
jQuery $.post()返回类型为
·
java 异常捕捉 ( try catc
·
程序代码进化的一些思考:从面向对象到设计
·
给老白写的一个工具函数 PHP打印匹配行
·
php版本比较函数version_com
·
为类和函数代码自动添加版权注释信息
·
正试图在 os 加载程序锁内执行托管代码
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
C++(MSV..
C++的语法的..
·
C++(MSVC) 下查看call st
·
C++的语法的相关简述
·
Eigen中Map的高级用法
·
CrossApp 更新至 0.3.4,新
·
C++ 父类的非虚函数调用虚函数
·
C++ 编译期 检测编译环境(32位
·
2014之C++学习笔记(三)
·
让大家久等了,CrossApp 0.3.
·
lambda表达式
·
cocos2d-x获取设备信息
·
2014之C++学习笔记(一)
·
VC中Tab控件简单使用
·
C/C++动态二维数组的内存分配和释放
·
优化体验与触摸分发,CrossApp 更
·
cocos2dx 内存管理
最新标签
高手
循环
class
异步
译码
编码
哈夫曼
冒泡排序
版本
Flex
今日热点
·
eclipse mingw qt搭建c+
·
C++的语法的相关简述
·
Eigen中Map的高级用法
·
CrossApp 更新至 0.3.4,新
·
让大家久等了,CrossApp 0.3.
·
lambda表达式
·
cocos2d-x获取设备信息
·
VC中Tab控件简单使用
·
C/C++动态二维数组的内存分配和释放
·
C++(MSVC) 下查看call st
推荐文章
Huffman..
穿过已知点画平..
·
Adobe CS5.5(X3
·
Adobe CS5.5(X3
·
MAC下配置Eclipse
·
linux-多线程-互斥锁在多进程共享
·
Visual Assist X10.6.
·
VC中OnTimer()函数
·
Huffman编码算法及C语言实现(2)
·
穿过已知点画平滑曲线(3次贝塞尔曲线)
·
基于ATL开发ActiveX控件(第一节
·
Linux下g++编译C++连接orac
·
【转】Ubuntu 10.04 + Ec
·
wcsncpy 及 wcscpy 函数用
·
MFC多文档程序启动时一个文档创建两个视
·
eclipse mingw qt搭建c+
·
Ubuntu 10.04安装codebl
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1