debugger: don't remove corefiles that we did not create.

This commit is contained in:
hjk
2010-09-07 14:19:44 +02:00
parent a364b93577
commit 98e37b3b15
4 changed files with 8 additions and 5 deletions

View File

@@ -108,6 +108,7 @@ using namespace TextEditor;
DebuggerStartParameters::DebuggerStartParameters() DebuggerStartParameters::DebuggerStartParameters()
: attachPID(-1), : attachPID(-1),
useTerminal(false), useTerminal(false),
isSnapshot(false),
breakAtMain(false), breakAtMain(false),
qmlServerAddress("127.0.0.1"), qmlServerAddress("127.0.0.1"),
qmlServerPort(0), qmlServerPort(0),

View File

@@ -68,6 +68,7 @@ public:
QString executable; QString executable;
QString displayName; QString displayName;
QString coreFile; QString coreFile;
bool isSnapshot; // set if created internally
QStringList processArgs; QStringList processArgs;
QStringList environment; QStringList environment;
QString workingDirectory; QString workingDirectory;

View File

@@ -3022,6 +3022,7 @@ void GdbEngine::handleMakeSnapshot(const GdbResponse &response)
function = frame.function + _(":") + QString::number(frame.line); function = frame.function + _(":") + QString::number(frame.line);
} }
sp.displayName = function + _(": ") + QDateTime::currentDateTime().toString(); sp.displayName = function + _(": ") + QDateTime::currentDateTime().toString();
sp.isSnapshot = true;
DebuggerRunControl *rc = DebuggerPlugin::createDebugger(sp); DebuggerRunControl *rc = DebuggerPlugin::createDebugger(sp);
DebuggerPlugin::startDebugger(rc); DebuggerPlugin::startDebugger(rc);
} else { } else {

View File

@@ -127,9 +127,9 @@ SnapshotHandler::~SnapshotHandler()
{ {
for (int i = m_snapshots.size(); --i >= 0; ) { for (int i = m_snapshots.size(); --i >= 0; ) {
if (DebuggerEngine *engine = engineAt(i)) { if (DebuggerEngine *engine = engineAt(i)) {
QString fileName = engine->startParameters().coreFile; const DebuggerStartParameters & sp = engine->startParameters();
if (!fileName.isEmpty()) if (sp.isSnapshot && !sp.coreFile.isEmpty())
QFile::remove(fileName); QFile::remove(sp.coreFile);
} }
} }
} }
@@ -270,8 +270,8 @@ void SnapshotHandler::removeSnapshot(int index)
const DebuggerEngine *engine = engineAt(index); const DebuggerEngine *engine = engineAt(index);
QTC_ASSERT(engine, return); QTC_ASSERT(engine, return);
QString fileName = engine->startParameters().coreFile; QString fileName = engine->startParameters().coreFile;
if (!fileName.isEmpty()) //if (!fileName.isEmpty())
QFile::remove(fileName); // QFile::remove(fileName);
m_snapshots.removeAt(index); m_snapshots.removeAt(index);
if (index == m_currentIndex) if (index == m_currentIndex)
m_currentIndex = -1; m_currentIndex = -1;