mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-09-05 17:44:55 -06:00
ide: clang related fixes, find in files now trims long lines when putting them to output display array to avoid slowdowns
git-svn-id: svn://ultimatepp.org/upp/trunk@14115 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
39355c2646
commit
5941dfdae3
7 changed files with 123 additions and 100 deletions
|
|
@ -226,6 +226,10 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
|
|||
DDUMP(pSym->Flags & IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE);
|
||||
DDUMP(pSym->Register == CV_ALLREG_VFRAME);
|
||||
DDUMP(pSym->Register);
|
||||
DDUMP(pSym->Scope);
|
||||
DDUMP(pSym->Value);
|
||||
DDUMP(pSym->ModBase);
|
||||
DDUMPHEX((adr_t)pSym->Address);
|
||||
#endif
|
||||
|
||||
bool param = pSym->Flags & IMAGEHLP_SYMBOL_INFO_PARAMETER;
|
||||
|
|
@ -241,7 +245,7 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
|
|||
v.address += c.pdb->GetCpuRegister(*c.context, CV_AMD64_RBP);
|
||||
else
|
||||
#endif
|
||||
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, CV_REG_EBP);
|
||||
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, CV_REG_EBP) - 4 * c.pdb->clang; // Workaround for supposed clang/win32 issue
|
||||
}
|
||||
else
|
||||
v.address += (adr_t)c.pdb->GetCpuRegister(*c.context, pSym->Register);
|
||||
|
|
@ -250,7 +254,6 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
|
|||
if(pSym->Flags & IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE)
|
||||
v.address += c.frame;
|
||||
|
||||
LLOG("LOCAL " << pSym->Name << ": " << Format64Hex(v.address));
|
||||
c.pdb->TypeVal(v, pSym->TypeIndex, (adr_t)pSym->ModBase);
|
||||
if(param && v.udt && v.ref == 0 && c.pdb->win64) { // dbghelp.dll incorrectly does not report pointer for (copied) value struct params
|
||||
v.ref++;
|
||||
|
|
@ -258,6 +261,7 @@ BOOL CALLBACK Pdb::EnumLocals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserCon
|
|||
}
|
||||
v.reported_size = pSym->Size;
|
||||
v.context = c.context;
|
||||
LLOG("LOCAL " << c.pdb->GetType(v.type).name << " " << pSym->Name << ": " << Format64Hex(v.address));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -275,6 +279,7 @@ void Pdb::GetLocals(Frame& frame, Context& context, VectorMap<String, Pdb::Val>&
|
|||
SymEnumSymbols(hProcess, 0, 0, &EnumLocals, &c);
|
||||
param = pick(c.param);
|
||||
local = pick(c.local);
|
||||
LLOG("===========================");
|
||||
}
|
||||
|
||||
BOOL CALLBACK Pdb::EnumGlobals(PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserContext)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue