Home » U++ TheIDE » U++ TheIDE: Compiling, Linking, Debugging of your packages » Problems debugging with Visual C++
Re: Problems debugging with Visual C++ [message #43646 is a reply to message #43645] |
Wed, 17 September 2014 15:41 |
|
mirek
Messages: 13975 Registered: November 2005
|
Ultimate Member |
|
|
Just to clarify, the change is with this method:
BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserContext)
{
LocalsCtx& c = *(LocalsCtx *)UserContext;
if(pSym->Tag == SymTagFunction)
return TRUE;
Val& v = (pSym->Flags & IMAGEHLP_SYMBOL_INFO_PARAMETER ? c.param : c.local).GetAdd(pSym->Name);
v.address = (adr_t)pSym->Address;
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_REGISTER)
v.address = pSym->Register;
else
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_REGRELATIVE) {
if(pSym->Register == CV_ALLREG_VFRAME) {
#ifdef CPU_64
if(c.pdb->win64)
v.address += c.pdb->GetCpuRegister(*c.context, CV_AMD64_RBP);
else
#endif
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, CV_REG_EBP);
}
else
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, pSym->Register);
}
else
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE)
v.address += c.frame;
c.pdb->TypeVal(v, pSym->TypeIndex, (adr_t)pSym->ModBase);
LLOG("LOCAL " << pSym->Name << ": " << Format64Hex(v.address));
return TRUE;
}
- and I believe the problems you are enduring is in there too. So perhaps if you have a bit of time and energy and my change does not work, could you please test with some RDUMPs put there, like
BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserContext)
{
LocalsCtx& c = *(LocalsCtx *)UserContext;
if(pSym->Tag == SymTagFunction)
return TRUE;
Val& v = (pSym->Flags & IMAGEHLP_SYMBOL_INFO_PARAMETER ? c.param : c.local).GetAdd(pSym->Name);
v.address = (adr_t)pSym->Address;
RLOG("-------------------------");
RDUMP(Format64Hex(v.address));
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_REGISTER)
v.address = pSym->Register;
else
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_REGRELATIVE) {
if(pSym->Register == CV_ALLREG_VFRAME) {
#ifdef CPU_64
if(c.pdb->win64)
v.address += c.pdb->GetCpuRegister(*c.context, CV_AMD64_RBP);
else
#endif
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, CV_REG_EBP);
RDUMP(Format64Hex(v.address));
}
else
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, pSym->Register);
}
else
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE) {
RDUMP(Format64Hex(c.frame));
v.address += c.frame;
}
c.pdb->TypeVal(v, pSym->TypeIndex, (adr_t)pSym->ModBase);
RLOG("LOCAL " << pSym->Name << ": " << Format64Hex(v.address));
return TRUE;
}
|
|
|
|
|
Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Tue, 16 September 2014 14:12
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Wed, 17 September 2014 15:36
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Wed, 17 September 2014 15:41
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Wed, 17 September 2014 19:53
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Wed, 17 September 2014 19:56
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 10:51
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 11:02
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 12:55
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 13:06
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 13:53
|
|
|
Re: Problems debugging with Visual C++
|
|
|
Re: Problems debugging with Visual C++
By: mirek on Thu, 18 September 2014 23:20
|
|
|
Re: Problems debugging with Visual C++
By: cbpporter on Fri, 19 September 2014 11:38
|
Goto Forum:
Current Time: Sun May 05 20:45:05 CEST 2024
Total time taken to generate the page: 0.02654 seconds
|