Есть ли в Visual Studio что-то похожее на CodeGuard от Borland? - PullRequest
2 голосов
/ 11 ноября 2008

Есть ли в Visual Studio что-либо, сообщающее об утечках памяти, как Codeguard?

например:

Error 00001. 0x300010 (Thread 0x0FA4):
Resource leak: The object (0xC65D84) was never deleted

The object (0x00C65D84) [size: 4 bytes] was created with new
| element2.cpp line 3:
| #include "element2.h"
| 
|>CS225::Element2::Element2(int _val) : p_val(new int(_val)) { }
| 
| CS225::Element2::Element2(const Element2& rhs) 
Call Tree:
   0x0040E3A7(=bcc_cg.exe:0x01:00D3A7) element2.cpp#3
   0x00409116(=bcc_cg.exe:0x01:008116) element-factory.h#19
   0x0040D964(=bcc_cg.exe:0x01:00C964) array.cpp#87
   0x00405308(=bcc_cg.exe:0x01:004308) driver.cpp#394
   0x004054B5(=bcc_cg.exe:0x01:0044B5) driver.cpp#415
   0x00405522(=bcc_cg.exe:0x01:004522) driver.cpp#420

------------------------------------------
Error 00002. 0x300010 (Thread 0x0FA4):
Resource leak: The object (0xC65D58) was never deleted

The object (0x00C65D58) [size: 4 bytes] was created with new
| element2.cpp line 6:
| 
| CS225::Element2::Element2(const Element2& rhs) 
|>  : AbstractElement(), p_val(new int(*rhs.p_val)) 
| { }
| 
Call Tree:
   0x0040E4B7(=bcc_cg.exe:0x01:00D4B7) element2.cpp#6
   0x0040E652(=bcc_cg.exe:0x01:00D652) element2.cpp#26
   0x0040D8CD(=bcc_cg.exe:0x01:00C8CD) array.cpp#81
   0x00405308(=bcc_cg.exe:0x01:004308) driver.cpp#394
   0x004054B5(=bcc_cg.exe:0x01:0044B5) driver.cpp#415
   0x00405522(=bcc_cg.exe:0x01:004522) driver.cpp#420

Ответы [ 2 ]

2 голосов
/ 11 ноября 2008

Встроенный, нет. Он имеет <crtdbg.h>, но он не настолько исчерпывающий, как подразумевается вашим примером. Существуют различные дополнения, которые предоставляют эту функциональность. Boundschecker - известный и популярный.

1 голос
/ 22 августа 2009

Визуальный детектор утечек звучит довольно хорошо. Впрочем, я сам не пробовал.

...