Is there anything in Visual Studio that will report memory leaks like Codeguard?
eg:
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
Built in, no. It has
<crtdbg.h>, but it’s not as comprehensive as implied by your example. There are various add-ons that provide this functionality. Boundschecker is a well-known and popular one.