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
82422c46
Commit
82422c46
authored
Dec 17, 2010
by
hjk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debugger: don't retrieve the stack if we know we will continue stepping
parent
16b5d20a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
6 deletions
+22
-6
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/gdb/gdbengine.cpp
+17
-6
src/plugins/debugger/gdb/gdbengine.h
src/plugins/debugger/gdb/gdbengine.h
+5
-0
No files found.
src/plugins/debugger/gdb/gdbengine.cpp
View file @
82422c46
...
...
@@ -191,6 +191,7 @@ GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters)
m_pendingWatchRequests
=
0
;
m_pendingBreakpointRequests
=
0
;
m_commandsDoneCallback
=
0
;
m_stackNeeded
=
false
;
invalidateSourcesList
();
m_gdbAdapter
=
createAdapter
();
...
...
@@ -1432,24 +1433,33 @@ void GdbEngine::handleStop1(const GdbMi &data)
showStatusMessage
(
reasontr
);
}
//
// Stack
//
// Let the event loop run before deciding whether to update the stack.
m_stackNeeded
=
true
;
// setTokenBarrier() might reset this.
m_currentThreadId
=
data
.
findChild
(
"thread-id"
).
data
().
toInt
();
QTimer
::
singleShot
(
0
,
this
,
SLOT
(
handleStop2
()));
}
void
GdbEngine
::
handleStop2
()
{
// We are already continuing.
if
(
!
m_stackNeeded
)
return
;
reloadStack
(
false
);
// Will trigger register reload.
if
(
supportsThreads
())
{
int
currentId
=
data
.
findChild
(
"thread-id"
).
data
().
toInt
();
if
(
m_gdbAdapter
->
isTrkAdapter
())
{
m_gdbAdapter
->
trkReloadThreads
();
}
else
if
(
m_isMacGdb
)
{
postCommand
(
"-thread-list-ids"
,
Discardable
,
CB
(
handleThreadListIds
),
current
Id
);
CB
(
handleThreadListIds
),
m_currentThread
Id
);
}
else
{
// This is only available in gdb 7.1+.
postCommand
(
"-thread-info"
,
Discardable
,
CB
(
handleThreadInfo
),
current
Id
);
CB
(
handleThreadInfo
),
m_currentThread
Id
);
}
}
}
void
GdbEngine
::
handleInfoProc
(
const
GdbResponse
&
response
)
...
...
@@ -2012,6 +2022,7 @@ void GdbEngine::setTokenBarrier()
if
(
debuggerCore
()
->
boolSetting
(
LogTimeStamps
))
showMessage
(
LogWindow
::
logTimeStamp
(),
LogMiscInput
);
m_oldestAcceptableToken
=
currentToken
();
m_stackNeeded
=
false
;
}
...
...
src/plugins/debugger/gdb/gdbengine.h
View file @
82422c46
...
...
@@ -284,6 +284,7 @@ private: ////////// Gdb Output, State & Capability Handling //////////
void
handleStop0
(
const
GdbMi
&
data
);
void
handleStop1
(
const
GdbResponse
&
response
);
void
handleStop1
(
const
GdbMi
&
data
);
Q_SLOT
void
handleStop2
();
StackFrame
parseStackFrame
(
const
GdbMi
&
mi
,
int
level
);
void
resetCommandQueue
();
...
...
@@ -537,6 +538,10 @@ private: ////////// View & Data Stuff //////////
QString
m_toolTipExpression
;
QPoint
m_toolTipPos
;
// For short-circuiting stack and thread list evaluation.
bool
m_stackNeeded
;
int
m_currentThreadId
;
// HACK:
StackFrame
m_targetFrame
;
};
...
...
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