ide: PDB debugger possible issue fixed

git-svn-id: svn://ultimatepp.org/upp/trunk@7698 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2014-09-17 13:33:48 +00:00
parent c612e22a28
commit f54e0000e3
2 changed files with 11 additions and 3 deletions

View file

@ -76,7 +76,13 @@ String SelectLoadFile(const char *types)
bool SelectSaveFile(const char *types, const String& data)
{
String p = SelectFileSaveAs(types);
return p.GetCount() && SaveFile(p, data);
if(p.GetCount() == 0)
return false;
if(!SaveFile(p, data)) {
Exclamation(t_("Error saving the file!"));
return false;
}
return true;
}
END_UPP_NAMESPACE

View file

@ -188,6 +188,9 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
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
@ -200,10 +203,9 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
else
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, pSym->Register);
}
else
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE)
v.address += c.frame;
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_REGISTER)
v.address = pSym->Register;
c.pdb->TypeVal(v, pSym->TypeIndex, (adr_t)pSym->ModBase);
LLOG("LOCAL " << pSym->Name << ": " << Format64Hex(v.address));
return TRUE;