草庐IT

assertNoMemoryLeak

全部标签

c++ - 有什么方法可以确保我的函数是最后一个被调用的函数吗?

我已经覆盖全局new/delete以捕获内存泄漏。当进程退出时,我需要调用assertNoMemoryLeak断言new分配的所有内存都已释放。但似乎我不能让assertNoMemoryLeak成为我进程中调用的最后一个函数,因为某些全局变量析构函数将是最后一个。atexit不起作用,原因如下。AFAIK,当调用构造函数时,gcc生成的全局析构函数将被推送到atexit列表,而且我也无法在启动期间让我的push'assertNoMemoryLeak'片段在此之前运行,所以我的assertNoMemoryLeak仍然不会作为最后一个函数运行。另一种解决方法是将new/delete信息写入