Quantcast
Channel: Debugging – Ofek's Visual C++ stuff
Viewing all articles
Browse latest Browse all 16

Checking Memory Corruption from the debugger in 2016

$
0
0

It used to be something like

{,,msvcr80d.dll}_CrtCheckMemory()

But this trick requires quite a bit of adaptation to use on modern VS versions.

First, the relevant module is now ucrtbased.dll – thanks to the universal CRT the expression is no longer version-dependent.

Second, the ugly context operator syntax – while still accepted – has an alternative in the module!function windbg-like form.

Even after these two fixes, more is needed. Type in a watch window ucrtbased.dll!_CrtCheckMemory(), and the value shown is –

No type information is available for the function being called. If you are calling a function from another module, please qualify the function name with the name of the module containing it.

The type information is definitely there – but don’t sweat it, just add the type information yourself:

((int (*)(void))ucrtbased.dll!_CrtCheckMemory)()


Filed under: Debugging, VC++

Viewing all articles
Browse latest Browse all 16

Trending Articles