diff --git a/uppsrc/CtrlLib/FileSelUtil.cpp b/uppsrc/CtrlLib/FileSelUtil.cpp index 49784f044..df71f6bf8 100644 --- a/uppsrc/CtrlLib/FileSelUtil.cpp +++ b/uppsrc/CtrlLib/FileSelUtil.cpp @@ -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 diff --git a/uppsrc/ide/Debuggers/Sym.cpp b/uppsrc/ide/Debuggers/Sym.cpp index 0f440adf7..06023fd78 100644 --- a/uppsrc/ide/Debuggers/Sym.cpp +++ b/uppsrc/ide/Debuggers/Sym.cpp @@ -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;