Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Tobias Hunger
qt-creator
Commits
a1da6068
Commit
a1da6068
authored
Oct 28, 2009
by
hjk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debugger: better protection from infinite loops due to broken dumpers in
synchroneous mode
parent
f21b01fc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
2 deletions
+14
-2
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/gdb/gdbengine.cpp
+1
-0
src/plugins/debugger/watchhandler.cpp
src/plugins/debugger/watchhandler.cpp
+13
-2
No files found.
src/plugins/debugger/gdb/gdbengine.cpp
View file @
a1da6068
...
...
@@ -3363,6 +3363,7 @@ void GdbEngine::updateLocals(const QVariant &cookie)
{
m_pendingRequests
=
0
;
if
(
isSynchroneous
())
{
m_processedNames
.
clear
();
manager
()
->
watchHandler
()
->
beginCycle
();
m_toolTipExpression
.
clear
();
QStringList
expanded
=
m_manager
->
watchHandler
()
->
expandedINames
().
toList
();
...
...
src/plugins/debugger/watchhandler.cpp
View file @
a1da6068
...
...
@@ -31,6 +31,7 @@
#include "watchutils.h"
#include "debuggeractions.h"
#include "debuggermanager.h"
#include "idebuggerengine.h"
#if USE_MODEL_TEST
#include "modeltest.h"
...
...
@@ -1124,8 +1125,18 @@ void WatchHandler::insertData(const WatchData &data)
return
;
}
if
(
data
.
isSomethingNeeded
()
&&
data
.
iname
.
contains
(
'.'
))
{
MODEL_DEBUG
(
"SOMETHING NEEDED: "
<<
data
.
toString
());
m_manager
->
updateWatchData
(
data
);
MODEL_DEBUGX
(
"SOMETHING NEEDED: "
<<
data
.
toString
());
if
(
!
m_manager
->
currentEngine
()
->
isSynchroneous
())
{
m_manager
->
updateWatchData
(
data
);
}
else
{
qDebug
()
<<
"ENDLESS LOOP: SOMETHING NEEDED: "
<<
data
.
toString
();
WatchData
data1
=
data
;
data1
.
setAllUnneeded
();
data1
.
setValue
(
QLatin1String
(
"<unavailable synchroneous data>"
));
data1
.
setHasChildren
(
false
);
WatchModel
*
model
=
modelForIName
(
data
.
iname
);
model
->
insertData
(
data1
);
}
}
else
{
WatchModel
*
model
=
modelForIName
(
data
.
iname
);
QTC_ASSERT
(
model
,
return
);
...
...
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