Debugger: Transform DebuggerRunParameters::breakOnMain

Task-number: QTCREATORBUG-29168
Change-Id: I3d771be8d2778f63bfcc7bf43b25c3086deb9309
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-13 12:50:45 +01:00
parent ac11fc2f88
commit 1d7fd9a781
9 changed files with 11 additions and 13 deletions

View File

@@ -442,7 +442,7 @@ void CdbEngine::handleInitialSessionIdle()
//operateByInstructionTriggered(operatesByInstruction()); //operateByInstructionTriggered(operatesByInstruction());
// QmlCppEngine expects the QML engine to be connected before any breakpoints are hit // QmlCppEngine expects the QML engine to be connected before any breakpoints are hit
// (attemptBreakpointSynchronization() will be directly called then) // (attemptBreakpointSynchronization() will be directly called then)
if (rp.breakOnMain) { if (rp.breakOnMain()) {
BreakpointParameters bp(BreakpointAtMain); BreakpointParameters bp(BreakpointAtMain);
if (rp.startMode() == StartInternal || rp.startMode() == StartExternal) { if (rp.startMode() == StartInternal || rp.startMode() == StartExternal) {
const QString &moduleFileName = rp.inferior().command.executable().fileName(); const QString &moduleFileName = rp.inferior().command.executable().fileName();

View File

@@ -414,7 +414,7 @@ void StartApplicationDialog::run(bool attachRemote)
else else
rp.setRemoteChannel(dev->sshParameters().host(), newParameters.serverPort); rp.setRemoteChannel(dev->sshParameters().host(), newParameters.serverPort);
rp.setDisplayName(newParameters.displayName()); rp.setDisplayName(newParameters.displayName());
debugger->setBreakOnMain(newParameters.breakAtMain); rp.setBreakOnMain(newParameters.breakAtMain);
debugger->setDebugInfoLocation(newParameters.debugInfoLocation); debugger->setDebugInfoLocation(newParameters.debugInfoLocation);
rp.setInferior(newParameters.runnable); rp.setInferior(newParameters.runnable);
rp.setCommandsAfterConnect(newParameters.serverInitCommands); rp.setCommandsAfterConnect(newParameters.serverInitCommands);

View File

@@ -276,7 +276,7 @@ Result DebuggerRunParameters::fixupParameters(ProjectExplorer::RunControl *runCo
m_startMode = StartInternal; m_startMode = StartInternal;
if (breakOnMainNextTime) { if (breakOnMainNextTime) {
breakOnMain = true; m_breakOnMain = true;
breakOnMainNextTime = false; breakOnMainNextTime = false;
} }

View File

@@ -183,7 +183,10 @@ public:
QString version() const { return m_version; } QString version() const { return m_version; }
bool isPythonDebugging() const { return m_isPythonDebugging; } bool isPythonDebugging() const { return m_isPythonDebugging; }
bool breakOnMain = false;
void setBreakOnMain(bool on) { m_breakOnMain = on; }
bool breakOnMain() const { return m_breakOnMain; }
bool multiProcess = false; // Whether to set detach-on-fork off. bool multiProcess = false; // Whether to set detach-on-fork off.
bool useTerminal = false; bool useTerminal = false;
bool runAsRoot = false; bool runAsRoot = false;
@@ -288,6 +291,7 @@ private:
QString m_version; QString m_version;
bool m_isPythonDebugging = false; bool m_isPythonDebugging = false;
bool m_breakOnMain = false;
}; };
namespace Internal { namespace Internal {

View File

@@ -103,11 +103,6 @@ public:
} // namespace Internal } // namespace Internal
void DebuggerRunTool::setBreakOnMain(bool on)
{
m_runParameters.breakOnMain = on;
}
void DebuggerRunTool::setUseTerminal(bool on) void DebuggerRunTool::setUseTerminal(bool on)
{ {
m_runParameters.useTerminal = on; m_runParameters.useTerminal = on;

View File

@@ -33,7 +33,6 @@ public:
void setStartMessage(const QString &msg); void setStartMessage(const QString &msg);
void setCrashParameter(const QString &event); void setCrashParameter(const QString &event);
void setBreakOnMain(bool on);
void setUseTerminal(bool on); void setUseTerminal(bool on);
void setUseDebugServer(Utils::ProcessHandle attachPid, bool essential, bool useMulti); void setUseDebugServer(Utils::ProcessHandle attachPid, bool essential, bool useMulti);

View File

@@ -4449,7 +4449,7 @@ void GdbEngine::setupInferior()
const DebuggerRunParameters &rp = runParameters(); const DebuggerRunParameters &rp = runParameters();
//runCommand("set follow-exec-mode new"); //runCommand("set follow-exec-mode new");
if (rp.breakOnMain) if (rp.breakOnMain())
runCommand({"tbreak " + mainFunction()}); runCommand({"tbreak " + mainFunction()});
if (!rp.solibSearchPath().isEmpty()) { if (!rp.solibSearchPath().isEmpty()) {

View File

@@ -264,7 +264,7 @@ void LldbEngine::handleLldbStarted()
const FilePath &executable = rp.inferior().command.executable(); const FilePath &executable = rp.inferior().command.executable();
DebuggerCommand cmd2("setupInferior"); DebuggerCommand cmd2("setupInferior");
cmd2.arg("executable", executable.path()); cmd2.arg("executable", executable.path());
cmd2.arg("breakonmain", rp.breakOnMain); cmd2.arg("breakonmain", rp.breakOnMain());
cmd2.arg("useterminal", usesTerminal()); cmd2.arg("useterminal", usesTerminal());
cmd2.arg("startmode", rp.startMode()); cmd2.arg("startmode", rp.startMode());
cmd2.arg("nativemixed", isNativeMixedActive()); cmd2.arg("nativemixed", isNativeMixedActive());

View File

@@ -135,7 +135,7 @@ void PdbEngine::handlePdbStarted()
showStatusMessage(Tr::tr("Running requested..."), 5000); showStatusMessage(Tr::tr("Running requested..."), 5000);
BreakpointManager::claimBreakpointsForEngine(this); BreakpointManager::claimBreakpointsForEngine(this);
notifyEngineRunAndInferiorStopOk(); notifyEngineRunAndInferiorStopOk();
if (runParameters().breakOnMain) if (runParameters().breakOnMain())
updateAll(); updateAll();
else else
continueInferior(); continueInferior();