我希望看到使用new()
在堆上创建对象时调用的所有代码。
最初,我在调试中使用了该项目,但后来我意识到调用了特定于调试的malloc()
函数。由于这个原因,我改为“发布”模式,看看我可以介入的代码有多远。
我到目前为止:
void * __cdecl _malloc_base (size_t size)
{
void *res = NULL;
// validate size
if (size <= _HEAP_MAXREQ) {
for (;;) {
// allocate memory block
res = _heap_alloc(size);
但是当我尝试进入_heap_alloc()
时,调试器只是跳过了这一行。
完成本练习的最佳策略是什么(能够查看分配内存时调用的所有代码)但是没有看到所有多余的调试代码?
编辑:我想我问的问题是,如果我遇到一个我无法介入的函数,有没有办法让我能够在某处搜索函数名并找到实现?