您可以爲構造函數,文件和行號添加兩個參數。將該信息保存在對象中,並在調用析構函數時將其打印出來。或者,你可以在構造函數的宏中隱藏一些醜陋的東西。
#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++一起工作 –