Я написал систему отслеживания памяти на c ++, используя Detours для исправления различных функций выделения памяти. Когда я получаю вызов malloc в дополнение к malloc, я также сохраняю трассировку стека (чтобы я мог точно определить утечку).
Единственный надежный способ получить точную трассировку стека - это использовать StackWalk64 (я пробовал RtlCaptureStackBackTrace, и это удалось только для очень простых стеков).
Однако вот моя проблема, StackWalk64 вызывает malloc, который, в свою очередь, вызывает StackWalk64 и приводит к переполнению стека. Теперь у меня может быть флаг, который работает с рекурсивными вызовами, однако он не работает с несколькими потоками
Мне было интересно, есть ли у кого-нибудь возможное решение этого маринада.
Спасибо
Рич Карлесс