Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
flatpak-qt-creator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
af57dc41
Commit
af57dc41
authored
Jul 20, 2010
by
hjk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debugger: re-enable setting breakpoints while inferior is running
parent
40bb5032
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
44 additions
and
32 deletions
+44
-32
src/plugins/debugger/debuggerengine.cpp
src/plugins/debugger/debuggerengine.cpp
+6
-1
src/plugins/debugger/debuggerengine.h
src/plugins/debugger/debuggerengine.h
+2
-0
src/plugins/debugger/gdb/abstractgdbadapter.cpp
src/plugins/debugger/gdb/abstractgdbadapter.cpp
+1
-0
src/plugins/debugger/gdb/attachgdbadapter.cpp
src/plugins/debugger/gdb/attachgdbadapter.cpp
+0
-1
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/gdb/gdbengine.cpp
+5
-7
src/plugins/debugger/gdb/remotegdbserveradapter.cpp
src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+1
-1
src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
+27
-21
src/plugins/debugger/gdb/termgdbadapter.cpp
src/plugins/debugger/gdb/termgdbadapter.cpp
+0
-1
src/plugins/debugger/gdb/trkgdbadapter.cpp
src/plugins/debugger/gdb/trkgdbadapter.cpp
+2
-0
No files found.
src/plugins/debugger/debuggerengine.cpp
View file @
af57dc41
...
...
@@ -432,7 +432,7 @@ void DebuggerEngine::handleCommand(int role, const QVariant &value)
break
;
case
RequestExecInterruptRole
:
d
->
do
InterruptInferior
();
request
InterruptInferior
();
break
;
case
RequestExecResetRole
:
...
...
@@ -1412,6 +1412,11 @@ void DebuggerEngine::quitDebugger()
shutdownInferior
();
}
void
DebuggerEngine
::
requestInterruptInferior
()
{
d
->
doInterruptInferior
();
}
}
// namespace Internal
}
// namespace Debugger
...
...
src/plugins/debugger/debuggerengine.h
View file @
af57dc41
...
...
@@ -173,6 +173,8 @@ protected:
virtual
void
continueInferior
()
{}
virtual
void
interruptInferior
()
{}
virtual
void
requestInterruptInferior
();
virtual
void
executeRunToLine
(
const
QString
&
fileName
,
int
lineNumber
)
{
Q_UNUSED
(
fileName
);
Q_UNUSED
(
lineNumber
);
}
virtual
void
executeRunToFunction
(
const
QString
&
functionName
)
...
...
src/plugins/debugger/gdb/abstractgdbadapter.cpp
View file @
af57dc41
...
...
@@ -54,6 +54,7 @@ AbstractGdbAdapter::~AbstractGdbAdapter()
//void AbstractGdbAdapter::runEngine()
//{
// QTC_ASSERT(state() == EngineRunRequested, qDebug() << state());
//}
/*
...
...
src/plugins/debugger/gdb/attachgdbadapter.cpp
View file @
af57dc41
...
...
@@ -78,7 +78,6 @@ void AttachGdbAdapter::runEngine()
{
QTC_ASSERT
(
state
()
==
EngineRunRequested
,
qDebug
()
<<
state
());
m_engine
->
notifyEngineRunAndInferiorStopOk
();
m_engine
->
notifyInferiorRunRequested
();
m_engine
->
continueInferiorInternal
();
m_engine
->
showStatusMessage
(
tr
(
"Attached to process %1."
)
.
arg
(
m_engine
->
inferiorPid
()));
...
...
src/plugins/debugger/gdb/gdbengine.cpp
View file @
af57dc41
...
...
@@ -654,13 +654,13 @@ void GdbEngine::interruptInferior()
void
GdbEngine
::
interruptInferiorTemporarily
()
{
interruptInferior
();
foreach
(
const
GdbCommand
&
cmd
,
m_commandsToRunOnTemporaryBreak
)
{
if
(
cmd
.
flags
&
LosesChild
)
{
notifyInferiorIll
();
break
;
return
;
}
}
requestInterruptInferior
();
}
void
GdbEngine
::
maybeHandleInferiorPidChanged
(
const
QString
&
pid0
)
...
...
@@ -1798,9 +1798,10 @@ unsigned GdbEngine::debuggerCapabilities() const
void
GdbEngine
::
continueInferiorInternal
()
{
QTC_ASSERT
(
state
()
==
InferiorStopOk
,
qDebug
()
<<
state
());
notifyInferiorRunRequested
();
showStatusMessage
(
tr
(
"Running requested..."
),
5000
);
QTC_ASSERT
(
state
()
==
InferiorRunRequested
,
qDebug
()
<<
state
());
//QTC_ASSERT(state() == InferiorStopOk || state() == InferiorSetupRequested,
// qDebug() << state());
postCommand
(
"-exec-continue"
,
RunRequest
,
CB
(
handleExecuteContinue
));
}
...
...
@@ -1815,9 +1816,7 @@ void GdbEngine::continueInferior()
QTC_ASSERT
(
state
()
==
InferiorStopOk
,
qDebug
()
<<
state
());
resetLocation
();
setTokenBarrier
();
notifyInferiorRunRequested
();
continueInferiorInternal
();
showStatusMessage
(
tr
(
"Running requested..."
),
5000
);
}
void
GdbEngine
::
executeStep
()
...
...
@@ -1953,7 +1952,6 @@ void GdbEngine::executeRunToFunction(const QString &functionName)
setTokenBarrier
();
postCommand
(
"-break-insert -t "
+
functionName
.
toLatin1
());
showStatusMessage
(
tr
(
"Run to function %1 requested..."
).
arg
(
functionName
),
5000
);
notifyInferiorRunRequested
();
continueInferiorInternal
();
//postCommand("-exec-continue", handleExecuteRunToFunction);
}
...
...
src/plugins/debugger/gdb/remotegdbserveradapter.cpp
View file @
af57dc41
...
...
@@ -225,8 +225,8 @@ void RemoteGdbServerAdapter::handleTargetRemote(const GdbResponse &record)
void
RemoteGdbServerAdapter
::
runEngine
()
{
QTC_ASSERT
(
state
()
==
EngineRunRequested
,
qDebug
()
<<
state
());
m_engine
->
notifyEngineRunAndInferiorStopOk
();
m_engine
->
notifyInferiorRunRequested
();
m_engine
->
continueInferiorInternal
();
}
...
...
src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
View file @
af57dc41
...
...
@@ -237,7 +237,7 @@ void TcfTrkGdbAdapter::handleTcfTrkRunControlModuleLoadContextSuspendedEvent(con
// + QByteArray::number(m_session.codeseg));
m_engine
->
postCommand
(
"symbol-file
\"
"
+
symbolFile
+
"
\"
"
);
}
foreach
(
const
QByteArray
&
s
,
Symbian
::
gdbStartupSequence
())
foreach
(
const
QByteArray
&
s
,
Symbian
::
gdbStartupSequence
())
m_engine
->
postCommand
(
s
);
m_engine
->
postCommand
(
"target remote "
+
gdbServerName
().
toLatin1
(),
CB
(
handleTargetRemote
));
...
...
@@ -299,7 +299,7 @@ void TcfTrkGdbAdapter::tcftrkEvent(const TcfTrkEvent &e)
const
TcfTrkRunControlContextSuspendedEvent
&
se
=
static_cast
<
const
TcfTrkRunControlContextSuspendedEvent
&>
(
e
);
const
unsigned
threadId
=
RunControlContext
::
threadIdFromTcdfId
(
se
.
id
());
const
QString
reason
=
QString
::
fromUtf8
(
se
.
reasonID
());
showMessage
(
QString
::
fromLatin1
(
"Reset snapshot (Thread 0x%1 stopped: '%2')"
).
showMessage
(
_
(
"Reset snapshot (Thread 0x%1 stopped: '%2')"
).
arg
(
threadId
,
0
,
16
).
arg
(
reason
));
// Stopped in a new thread: Add.
m_snapshot
.
reset
();
...
...
@@ -544,7 +544,7 @@ void TcfTrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
const
uint
signalNumber
=
cmd
.
mid
(
1
).
toUInt
(
&
ok
,
16
);
//TODO: Meaning of the message is not clear.
sendGdbServerAck
();
logMessage
(
QString
::
fromLatin1
(
"Not implemented 'Continue with signal' %1: "
).
arg
(
signalNumber
),
LogWarning
);
logMessage
(
_
(
"Not implemented 'Continue with signal' %1: "
).
arg
(
signalNumber
),
LogWarning
);
sendGdbServerMessage
(
"O"
+
QByteArray
(
"Console output"
).
toHex
());
sendGdbServerMessage
(
"W81"
);
// "Process exited with result 1
sendTrkContinue
();
...
...
@@ -646,7 +646,7 @@ void TcfTrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
sendGdbServerMessage
(
"E20"
,
"Data length mismatch "
+
cmd
);
return
;
}
logMessage
(
QString
::
fromLatin1
(
"Writing %1 bytes from 0x%2: %3"
).
logMessage
(
_
(
"Writing %1 bytes from 0x%2: %3"
).
arg
(
addrLength
.
second
).
arg
(
addrLength
.
first
,
0
,
16
).
arg
(
QString
::
fromAscii
(
data
.
toHex
())));
m_trkDevice
->
sendMemorySetCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleWriteMemory
),
...
...
@@ -680,7 +680,7 @@ void TcfTrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
const
QPair
<
uint
,
uint
>
regnumValue
=
parseGdbWriteRegisterWriteRequest
(
cmd
);
// FIXME: Assume all goes well.
m_snapshot
.
setRegisterValue
(
m_session
.
tid
,
regnumValue
.
first
,
regnumValue
.
second
);
logMessage
(
QString
::
fromLatin1
(
"Setting register #%1 to 0x%2"
).
arg
(
regnumValue
.
first
).
arg
(
regnumValue
.
second
,
0
,
16
));
logMessage
(
_
(
"Setting register #%1 to 0x%2"
).
arg
(
regnumValue
.
first
).
arg
(
regnumValue
.
second
,
0
,
16
));
m_trkDevice
->
sendRegistersSetCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleWriteRegister
),
currentThreadContextId
(),
regnumValue
.
first
,
regnumValue
.
second
,
QVariant
(
regnumValue
.
first
));
...
...
@@ -803,7 +803,7 @@ void TcfTrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd)
else
if
(
cmd
==
"s"
||
cmd
.
startsWith
(
"vCont;s"
))
{
const
uint
pc
=
m_snapshot
.
registerValue
(
m_session
.
tid
,
RegisterPC
);
logMessage
(
msgGdbPacket
(
QString
::
fromLatin1
(
"Step range from 0x%1"
).
logMessage
(
msgGdbPacket
(
_
(
"Step range from 0x%1"
).
arg
(
pc
,
0
,
16
)));
sendGdbServerAck
();
m_running
=
true
;
...
...
@@ -905,7 +905,7 @@ void TcfTrkGdbAdapter::gdbSetCurrentThread(const QByteArray &cmd, const char *wh
const
QByteArray
id
=
cmd
.
mid
(
2
);
const
int
threadId
=
id
==
"-1"
?
-
1
:
id
.
toInt
(
0
,
16
);
const
QByteArray
message
=
QByteArray
(
why
)
+
QByteArray
::
number
(
threadId
);
logMessage
(
msgGdbPacket
(
QString
::
fromLatin1
(
message
)));
logMessage
(
msgGdbPacket
(
_
(
message
)));
// Set thread for subsequent operations (`m', `M', `g', `G', et.al.).
// for 'other operations. 0 - any thread
//$Hg0#df
...
...
@@ -977,7 +977,7 @@ void TcfTrkGdbAdapter::startAdapter()
connect
(
m_gdbServer
,
SIGNAL
(
newConnection
()),
this
,
SLOT
(
handleGdbConnection
()));
logMessage
(
QString
::
fromLatin1
(
"Connecting to TCF TRK on %1:%2"
)
logMessage
(
_
(
"Connecting to TCF TRK on %1:%2"
)
.
arg
(
tcfTrkAddress
).
arg
(
tcfTrkPort
));
tcfTrkSocket
->
connectToHost
(
tcfTrkAddress
,
tcfTrkPort
);
}
...
...
@@ -985,9 +985,10 @@ void TcfTrkGdbAdapter::startAdapter()
void
TcfTrkGdbAdapter
::
setupInferior
()
{
QTC_ASSERT
(
state
()
==
InferiorSetupRequested
,
qDebug
()
<<
state
());
m_trkDevice
->
sendProcessStartCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleCreateProcess
),
m_remoteExecutable
,
m_uid
,
m_remoteArguments
,
QString
(),
true
);
m_trkDevice
->
sendProcessStartCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleCreateProcess
),
m_remoteExecutable
,
m_uid
,
m_remoteArguments
,
QString
(),
true
);
}
void
TcfTrkGdbAdapter
::
addThread
(
unsigned
id
)
...
...
@@ -1009,7 +1010,7 @@ void TcfTrkGdbAdapter::handleCreateProcess(const TcfTrkCommandResult &result)
qDebug
()
<<
"ProcessCreated: "
<<
result
.
toString
();
if
(
!
result
)
{
const
QString
errorMessage
=
result
.
errorString
();
logMessage
(
QString
::
fromLatin1
(
"Failed to start process: %1"
).
arg
(
errorMessage
),
LogError
);
logMessage
(
_
(
"Failed to start process: %1"
).
arg
(
errorMessage
),
LogError
);
m_engine
->
notifyInferiorSetupFailed
(
result
.
errorString
());
return
;
}
...
...
@@ -1030,7 +1031,8 @@ void TcfTrkGdbAdapter::handleCreateProcess(const TcfTrkCommandResult &result)
void
TcfTrkGdbAdapter
::
runEngine
()
{
m_engine
->
notifyInferiorStopOk
();
QTC_ASSERT
(
state
()
==
EngineRunRequested
,
qDebug
()
<<
state
());
m_engine
->
notifyEngineRunAndInferiorStopOk
();
// Trigger the initial "continue" manually.
m_engine
->
continueInferiorInternal
();
}
...
...
@@ -1052,7 +1054,8 @@ void TcfTrkGdbAdapter::write(const QByteArray &data)
data1
.
chop
(
1
);
bool
ok
;
const
uint
addr
=
data1
.
toUInt
(
&
ok
,
0
);
logMessage
(
QString
::
fromLatin1
(
"Direct step (@#) 0x%1: not implemented"
).
arg
(
addr
,
0
,
16
),
LogError
);
logMessage
(
_
(
"Direct step (@#) 0x%1: not implemented"
).
arg
(
addr
,
0
,
16
),
LogError
);
// directStep(addr);
return
;
}
...
...
@@ -1115,7 +1118,8 @@ void TcfTrkGdbAdapter::handleWriteRegister(const TcfTrkCommandResult &result)
if
(
result
)
{
sendGdbServerMessage
(
"OK"
);
}
else
{
logMessage
(
QString
::
fromLatin1
(
"ERROR writing register #%1: %2"
).
arg
(
registerNumber
).
arg
(
result
.
errorString
()),
LogError
);
logMessage
(
_
(
"ERROR writing register #%1: %2"
)
.
arg
(
registerNumber
).
arg
(
result
.
errorString
()),
LogError
);
sendGdbServerMessage
(
"E01"
);
}
}
...
...
@@ -1353,7 +1357,7 @@ void TcfTrkGdbAdapter::sendTrkStepRange()
uint
to
=
m_snapshot
.
lineToAddress
;
const
uint
pc
=
m_snapshot
.
registerValue
(
m_session
.
tid
,
RegisterPC
);
if
(
from
<=
pc
&&
pc
<=
to
)
{
const
QString
msg
=
QString
::
fromLatin1
(
"Step in 0x%1 .. 0x%2 instead of 0x%3..."
).
const
QString
msg
=
_
(
"Step in 0x%1 .. 0x%2 instead of 0x%3..."
).
arg
(
from
,
0
,
16
).
arg
(
to
,
0
,
16
).
arg
(
pc
,
0
,
16
);
showMessage
(
msg
);
}
else
{
...
...
@@ -1365,18 +1369,20 @@ void TcfTrkGdbAdapter::sendTrkStepRange()
(
m_snapshot
.
stepOver
?
RM_STEP_OVER
:
RM_STEP_INTO
)
:
(
m_snapshot
.
stepOver
?
RM_STEP_OVER_RANGE
:
RM_STEP_INTO_RANGE
);
logMessage
(
QString
::
fromLatin1
(
"Stepping from 0x%1 to 0x%2 (current PC=0x%3), mode %4"
).
logMessage
(
_
(
"Stepping from 0x%1 to 0x%2 (current PC=0x%3), mode %4"
).
arg
(
from
,
0
,
16
).
arg
(
to
,
0
,
16
).
arg
(
pc
).
arg
(
int
(
mode
)));
m_trkDevice
->
sendRunControlResumeCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleStep
),
currentThreadContextId
(),
mode
,
1
,
from
,
to
);
m_trkDevice
->
sendRunControlResumeCommand
(
TcfTrkCallback
(
this
,
&
TcfTrkGdbAdapter
::
handleStep
),
currentThreadContextId
(),
mode
,
1
,
from
,
to
);
}
void
TcfTrkGdbAdapter
::
handleStep
(
const
TcfTrkCommandResult
&
result
)
{
if
(
!
result
)
{
// Try fallback with Continue.
logMessage
(
QString
::
fromLatin1
(
"Error while stepping: %1 (fallback to 'continue')"
).
arg
(
result
.
errorString
()),
LogWarning
);
logMessage
(
_
(
"Error while stepping: %1 (fallback to 'continue')"
).
arg
(
result
.
errorString
()),
LogWarning
);
sendTrkContinue
();
// Doing nothing as below does not work as gdb seems to insist on
// making some progress through a 'step'.
...
...
src/plugins/debugger/gdb/termgdbadapter.cpp
View file @
af57dc41
...
...
@@ -143,7 +143,6 @@ void TermGdbAdapter::runEngine()
{
QTC_ASSERT
(
state
()
==
EngineRunRequested
,
qDebug
()
<<
state
());
m_engine
->
notifyEngineRunAndInferiorStopOk
();
m_engine
->
notifyInferiorRunRequested
();
m_engine
->
continueInferiorInternal
();
}
...
...
src/plugins/debugger/gdb/trkgdbadapter.cpp
View file @
af57dc41
...
...
@@ -1615,6 +1615,8 @@ void TrkGdbAdapter::handleTargetRemote(const GdbResponse &record)
void
TrkGdbAdapter
::
runEngine
()
{
QTC_ASSERT
(
state
()
==
EngineRunRequested
,
qDebug
()
<<
state
());
m_engine
->
notifyEngineRunAndInferiorStopOk
();
m_engine
->
continueInferiorInternal
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment