[转]如何快速定位一个函数的返回点 - 调试技巧
来源:互联网 发布:山寨币程序员开发 编辑:程序博客网 时间:2024/05/22 02:22
转自:http://www.cnblogs.com/baiyanhuang/archive/2009/09/01/1557890.html#commentform
我截取原文一部分,并稍做了改动,如下:
方法1:(宏定义替换return)
A:对于MFC工程
#define return TRACE(__LINE__); return
B:控制台工程
#define return std::cout<<"line: "<<__LINE__<<std::endl; return
方法2:(利用函数返回时析构栈上变量的特性)
class ReturnMonitor{ ~ReturnMonitor(){} };
struct LongFunction()
{
ReturnMonitor mon;
// Function body
}
struct LongFunction()
{
ReturnMonitor mon;
// Function body
}
在资源管理中我们经常会用这种方式(RAII),现在我们利用函数返回时会调用析构函数这个特性,在析构函数中设断点,就能在callstack中看到返回点。这还有一个优点就是在LongFunction调用过程中如果出现异常,也能被捕捉。
第二个是“返回时析构”,我们可以定义以下宏:
#ifdef _DEBUG
#define RETURN_MONITOR ReturnMonitor mon;
#else
#define RETURN_MONITOR
#endif
#define RETURN_MONITOR ReturnMonitor mon;
#else
#define RETURN_MONITOR
#endif
这样对于我们代码中比较长的,较难调试的长函数,就可以在函数开始加上RETURN_MONITOR,并且不影响release版本。
- [转]如何快速定位一个函数的返回点 - 调试技巧
- JS的错误快速定位--JavaScript调试技巧
- JavaScript调试技巧之:快速定位
- JavaScript调试技巧之:快速定位
- JavaScript调试技巧之:快速定位
- XCode4 的调试定位技巧
- Xcode 如何调试 快速定位出错行
- 原创|Android逆向调试的打印调试信息定位代码位置的一个小技巧
- 一个调试的技巧
- 函数的返回值---函数如何返回一个大的返回值
- 调试技巧:如何以数组的方式查看一个指针
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- Xcode4 的错误调试定位技巧
- XCode 4 的调试定位技巧
- XCode 4 的调试定位技巧
- 【Xcode】XCode 4 的调试定位技巧
- 纪元(Epoch)以来的秒数
- 软件测试面试题整理2
- java数据库设计中的14个技巧
- java实现的18位身份证格式验证算法
- 学习
- [转]如何快速定位一个函数的返回点 - 调试技巧
- 1
- demo
- Balon白话MSDN:从普通DLL中导出C++类(1) – dllexport和dllimport的使用方法(中英对照、附注解)
- VA_LIST的用法
- 2009-09-02
- 用php将任何格式视频转为flv
- 使用版本控制程序SVN的工作流程
- Balon白话MSDN:从普通DLL中导出C++类(2) – 细看导出C++类的底层机制