0
콜 스택에 대한 디버그 정보를 출력하고 있습니다. 나는 무시 사이에 명확하고 기본적으로 비주얼 스튜디오 호출 스택 창에 표시되는 것을 재현하기 위해 함수의 전체 서명을 재현하려는 그러나 SymFromAddr콜 스택 주소에서 함수 인수 얻기
void getFunctionInfo(FunctionInfo& funcInfo, uintptr_t address)
{
DWORD64 dwDisplacement; //not used
static char buffer[ sizeof(SYMBOL_INFO) + MAX_SYM_NAME ];
PSYMBOL_INFO pSymbol = (PSYMBOL_INFO) buffer;
pSymbol->SizeOfStruct = sizeof(SYMBOL_INFO);
pSymbol->MaxNameLen = MAX_SYM_NAME;
if (SymFromAddr(m_process, address, &dwDisplacement, pSymbol))
{
strcpy(funcInfo.funcName, pSymbol->Name, MAX_SYM_NAME);
}
//TODO get function arguments
}
를 사용하여 충분히 쉽게 함수 이름을 얻을 수 있습니다. 이를 달성하기 위해 API 호출을 찾을 수 없습니다.
하나 있습니까? 대답으로 날을 제공하는 @IInspectable에
[SymSetOptions] (http://msdn.microsoft.com/en-us/library/)에서'SYMOPT_UNDNAME'을 설정하지 않았는지 확인하십시오. windows/desktop/ms681366.aspx). 데코 레이팅 된 심볼 이름이 있으면 [UnDecorateSymbolName] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms681400.aspx)을 호출하여 Visual Studio * Callstack * 창이 표시됩니다. – IInspectable
@IInspectable 감사합니다 - 이것은 내가 원했던 것입니다. –