C/C++ codeCONTEXT context;
HANDLE hThread = GetCurrentThread();
HANDLE hProc = GetCurrentProcess();
BOOL ret = false;
context.ContextFlags = CONTEXT_FULL;
ret = GetThreadContext(hThread,&context);
STACKFRAME64 sf={0};
sf.AddrPC.Mode= AddrModeFlat;
sf.AddrPC.Offset = context.Eip;
sf.AddrStack.Mode = AddrModeFlat;
sf.AddrStack.Offset = context.Esp;
sf.AddrFrame.Mode = AddrModeFlat;
sf.AddrFrame.Offset = context.Ebp;
DWORD64 placement;
IMAGEHLP_SYMBOL64 *symbol_info = (IMAGEHLP_SYMBOL64 *)malloc(sizeof(IMAGEHLP_SYMBOL64) + 1024);
memset(symbol_info,0,sizeof(IMAGEHLP_SYMBOL64) + 1024);
symbol_info->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64);
symbol_info->MaxNameLength = 1024;
ret = StackWalk64(IMAGE_FILE_MACHINE_I386,hProc,hThread,&sf,&context,NULL,SymFunctionTableAccess64,SymGetModuleBase64,NULL);
cout<
ret = SymGetSymFromAddr64(hProc,sf.AddrPC.Offset,&placement,symbol_info);
cout<