【发布时间】:2011-06-01 23:50:44
【问题描述】:
[IMAGEHLP_SYMBOL64][1] *pSym = NULL;
[IMAGEHLP_LINE64][2] Line;
STACKFRAME64 s;
int d = 0;
//In my code I obtain the return address from the stack frame of function foo() which was called from function bar() and assign it to s.AddrPC.Offset. Now I call -
SymGetLineFromAddr64(this->m_hProcess, s.AddrPC.Offset, &(d), &Line)
SymGetSymFromAddr64(this->m_hProcess, s.AddrPC.Offset, &(d), pSym))
//We pass the current process HANDLE
//pSym->Name = bar
这些包含哪些地址?
Line.Address;
pSym->Address;
找到了! pSym->Address 给出函数名的虚拟地址
我一直在努力解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
不要编辑您的问题以包含答案,而是在下面写一个实际答案,然后接受。
-
@jalf:这不是一个完整的答案,我不想接受我自己的答案。如果我找到答案,我会删除问题。
-
从浏览量来看,我认为没有人对这个问题感兴趣 :) 但我理解你的观点,不会删除这个问题。我想给别人一个回答问题并获得分数的机会,而不是自己这样做。