Я использую функцию _CrtSetBreakAlloc()
для отслеживания утечек памяти в debugger
сборках моего проекта MFC. ( Вот код из моего предыдущего вопроса.)
Эта техника работает до тех пор, пока Allocation order number
остается прежним. Но во многих случаях это не так. Например, вот два отчета, которые я получаю сейчас:
Первый запуск:
Detected memory leaks!
Dumping objects ->
{222861} normal block at 0x000002BDF58347C0, 240 bytes long.
Data: <C : \ P r o g r > 43 00 3A 00 5C 00 50 00 72 00 6F 00 67 00 72 00
{222860} normal block at 0x000002BDEFBA52A0, 16 bytes long.
Data: < > 10 AF B7 EF BD 02 00 00 00 00 00 00 00 00 00 00
{222859} normal block at 0x000002BDEFB7AF10, 40 bytes long.
Data: < R G > A0 52 BA EF BD 02 00 00 C0 47 83 F5 BD 02 00 00
Object dump complete.
Второй запуск:
Detected memory leaks!
Dumping objects ->
{222422} normal block at 0x00000123DDB67540, 224 bytes long.
Data: <C : \ P r o g r > 43 00 3A 00 5C 00 50 00 72 00 6F 00 67 00 72 00
{222419} normal block at 0x00000123DDBA9C50, 16 bytes long.
Data: < # > 80 16 B7 DD 23 01 00 00 00 00 00 00 00 00 00 00
{222418} normal block at 0x00000123DDB71680, 40 bytes long.
Data: <P # @u # > 50 9C BA DD 23 01 00 00 40 75 B6 DD 23 01 00 00
Object dump complete.
Так что мне интересно, есть ли функция или способ переписать _CrtSetBreakAlloc
, чтобы он вызывал точку останова на содержимом памяти? Например, в моем случае, когда в память записывается строка Unicode-16 "C:\Progr"
, записанная в нее.