您可以为构造函数,文件和行号添加两个参数。将该信息保存在对象中,并在调用析构函数时将其打印出来。或者,你可以在构造函数的宏中隐藏一些丑陋的东西。
#include <iostream>
#include <string>
using std::string;
class Object
{
string _file;
int _line;
public:
Object(const char * file, int line) : _file(file), _line(line) {}
~Object() { std::cerr << "dtor for object created in file: " << _file << " line: " << _line << std::endl; }
};
int main(int argc, char * argv[])
{
Object obj(__FILE__, __LINE__);
return 0;
}
这是它的运行
$ g++ main.cpp -o main && ./main
dtor for object created in file: main.cpp line: 16
$
你正在寻找一个工具,将在OS X中工作? –
Linux也很好 –
严格的要求是它必须和C++一起工作 –