Commit 31eb31dd authored by Joerg Bornemann's avatar Joerg Bornemann
Browse files

speed up of cdb debugging helper initialization

The symbols in gdbhelpers.dll are never namespaced.
Thus we don't have to resolve the symbols - we already know their names.
The resolution took 5 seconds per symbol on my machine.
parent 1adc8696
......@@ -437,10 +437,19 @@ static inline bool getSymbolAddress(CIDebugSymbols *sg,
bool CdbDumperHelper::initResolveSymbols(QString *errorMessage)
{
// Resolve the symbols we need (potentially namespaced).
// Resolve the symbols we need.
// There is a 'qDumpInBuffer' in QtCore as well.
if (loadDebug)
qDebug() << Q_FUNC_INFO;
#if 1
// Symbols in the debugging helpers are never namespaced.
// Keeping the old code for now. ### maybe use as fallback?
const QString dumperModuleName = QLatin1String(dumperModuleNameC);
m_dumpObjectSymbol = dumperModuleName + QLatin1String("!qDumpObjectData440");
QString inBufferSymbol = dumperModuleName + QLatin1String("!qDumpInBuffer");
QString outBufferSymbol = dumperModuleName + QLatin1String("!qDumpOutBuffer");
bool rc;
#else
m_dumpObjectSymbol = QLatin1String("*qDumpObjectData440");
QString inBufferSymbol = QLatin1String("*qDumpInBuffer");
QString outBufferSymbol = QLatin1String("*qDumpOutBuffer");
......@@ -450,6 +459,7 @@ bool CdbDumperHelper::initResolveSymbols(QString *errorMessage)
&& resolveSymbol(m_coreEngine->interfaces().debugSymbols, dumperModuleName, &outBufferSymbol, errorMessage) == ResolveSymbolOk;
if (!rc)
return false;
#endif
// Determine buffer addresses, sizes and alloc buffer
rc = getSymbolAddress(m_coreEngine->interfaces().debugSymbols, inBufferSymbol, &m_inBufferAddress, &m_inBufferSize, errorMessage)
&& getSymbolAddress(m_coreEngine->interfaces().debugSymbols, outBufferSymbol, &m_outBufferAddress, &m_outBufferSize, errorMessage);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment