forked from qt-creator/qt-creator
Debugger: add symbolgroup dumper to cdbbridge
Change-Id: I70f9831873cd17f0ee6a59c4345f2a28921c41bf Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -13,8 +13,23 @@ constexpr bool debuggingValueEnabled() { return debugPyValue || debugPyCdbextMod
|
|||||||
|
|
||||||
static std::map<CIDebugSymbolGroup *, std::list<PyValue *>> valuesForSymbolGroup;
|
static std::map<CIDebugSymbolGroup *, std::list<PyValue *>> valuesForSymbolGroup;
|
||||||
|
|
||||||
|
void dumpSymbolGroup(CIDebugSymbolGroup *symbolGroup)
|
||||||
|
{
|
||||||
|
if (!debuggingValueEnabled())
|
||||||
|
return;
|
||||||
|
|
||||||
|
ULONG count;
|
||||||
|
if (FAILED(symbolGroup->GetNumberSymbols(&count)))
|
||||||
|
return;
|
||||||
|
DebugPrint() << "Symbol group " << symbolGroup << " has " << count << " symbols";
|
||||||
|
for (ULONG i = 0; i < count; ++i)
|
||||||
|
DebugPrint() << " " << i << ": " << PyValue(i, symbolGroup).name();
|
||||||
|
}
|
||||||
|
|
||||||
void PyValue::indicesMoved(CIDebugSymbolGroup *symbolGroup, ULONG start, ULONG delta)
|
void PyValue::indicesMoved(CIDebugSymbolGroup *symbolGroup, ULONG start, ULONG delta)
|
||||||
{
|
{
|
||||||
|
if (debuggingValueEnabled())
|
||||||
|
DebugPrint() << "PyValue::indicesMoved " << symbolGroup << " start " << start << " delta " << delta << "\n";
|
||||||
if (delta == 0)
|
if (delta == 0)
|
||||||
return;
|
return;
|
||||||
ULONG count;
|
ULONG count;
|
||||||
@@ -26,6 +41,7 @@ void PyValue::indicesMoved(CIDebugSymbolGroup *symbolGroup, ULONG start, ULONG d
|
|||||||
if (val->m_index >= start && val->m_index + delta < count)
|
if (val->m_index >= start && val->m_index + delta < count)
|
||||||
val->m_index += delta;
|
val->m_index += delta;
|
||||||
}
|
}
|
||||||
|
dumpSymbolGroup(symbolGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
PyValue::PyValue(unsigned long index, CIDebugSymbolGroup *symbolGroup)
|
PyValue::PyValue(unsigned long index, CIDebugSymbolGroup *symbolGroup)
|
||||||
@@ -146,6 +162,7 @@ bool PyValue::expand()
|
|||||||
return false;
|
return false;
|
||||||
if (params.Flags & DEBUG_SYMBOL_EXPANDED)
|
if (params.Flags & DEBUG_SYMBOL_EXPANDED)
|
||||||
return true;
|
return true;
|
||||||
|
dumpSymbolGroup(m_symbolGroup);
|
||||||
if (FAILED(m_symbolGroup->ExpandSymbol(m_index, TRUE)))
|
if (FAILED(m_symbolGroup->ExpandSymbol(m_index, TRUE)))
|
||||||
return false;
|
return false;
|
||||||
if (FAILED(m_symbolGroup->GetSymbolParameters(m_index, 1, ¶ms)))
|
if (FAILED(m_symbolGroup->GetSymbolParameters(m_index, 1, ¶ms)))
|
||||||
|
|||||||
Reference in New Issue
Block a user