C++面向对象编程中,如何记录函数的调用顺序啊?当程序发生错误时,可以快速定位到正在调用的函数 5
4个回答
展开全部
可以在关键函数被调用时向一个log文件记录调用信息。
缺点是如果程序运行时间长,关键函数调用太多,log文件就会太大。当然这可以通过限制log文件大小得到改善。
而如果错误不是被你的异常函数捕捉到,那么最后一些函数调用信息可能还来得及更新到磁盘。
------------
补充:
题目是啥啊?给个例子:
#include <iostream>
#include <fstream>
using namespace std;
ofstream logFile("log.txt", ios::app);
#define LOG(x) logFile << x
class AClass {
public:
AClass()
{
LOG("AClass::AClass\n");
}
};
int main(void)
{
LOG("main\n");
AClass a;
AClass b;
return 0;
}
--------
运行之后会产生一个文件"log.txt",其中会记录所有调用信息。
缺点是如果程序运行时间长,关键函数调用太多,log文件就会太大。当然这可以通过限制log文件大小得到改善。
而如果错误不是被你的异常函数捕捉到,那么最后一些函数调用信息可能还来得及更新到磁盘。
------------
补充:
题目是啥啊?给个例子:
#include <iostream>
#include <fstream>
using namespace std;
ofstream logFile("log.txt", ios::app);
#define LOG(x) logFile << x
class AClass {
public:
AClass()
{
LOG("AClass::AClass\n");
}
};
int main(void)
{
LOG("main\n");
AClass a;
AClass b;
return 0;
}
--------
运行之后会产生一个文件"log.txt",其中会记录所有调用信息。
2011-02-13
展开全部
每个函数开始执行时都显示提示信息不就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码结构上要合理,用好try catch
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#define MM_FUNCTION_PRINT printf("%s %s ",__FILE__,__FUNCTION__);
在每个函数前都调用该宏
在每个函数前都调用该宏
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询