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
Q
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
Tobias Hunger
qt-creator
Commits
27382f75
Commit
27382f75
authored
Aug 28, 2009
by
hjk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
debuger: fix insertion of nested WatchData
parent
75ade294
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
24 additions
and
14 deletions
+24
-14
share/qtcreator/gdbmacros/gdbmacros.cpp
share/qtcreator/gdbmacros/gdbmacros.cpp
+1
-1
src/plugins/debugger/debuggermanager.cpp
src/plugins/debugger/debuggermanager.cpp
+3
-2
src/plugins/debugger/gdb/gdbengine.cpp
src/plugins/debugger/gdb/gdbengine.cpp
+17
-9
src/plugins/debugger/gdb/gdbengine.h
src/plugins/debugger/gdb/gdbengine.h
+2
-1
src/plugins/debugger/watchhandler.cpp
src/plugins/debugger/watchhandler.cpp
+1
-1
No files found.
share/qtcreator/gdbmacros/gdbmacros.cpp
View file @
27382f75
...
...
@@ -2834,7 +2834,7 @@ static void qDumpQSharedPointer(QDumper &d)
static
void
qDumpQString
(
QDumper
&
d
)
{
qCheckAccess
(
deref
(
d
.
data
));
//
qCheckAccess(deref(d.data));
const
QString
&
str
=
*
reinterpret_cast
<
const
QString
*>
(
d
.
data
);
const
int
size
=
str
.
size
();
...
...
src/plugins/debugger/debuggermanager.cpp
View file @
27382f75
...
...
@@ -316,9 +316,10 @@ void DebuggerManager::init()
// Tooltip
//QTreeView *tooltipView = qobject_cast<QTreeView *>(m_tooltipWindow);
//tooltipView->setModel(m_watchHandler->model(TooltipsWatch));
//qRegisterMetaType<WatchData>("Debugger::Internal::WatchData");
qRegisterMetaType
<
WatchData
>
(
"WatchData"
);
connect
(
m_watchHandler
,
SIGNAL
(
watchDataUpdateNeeded
(
WatchData
)),
this
,
SLOT
(
updateWatchData
(
WatchData
)));
this
,
SLOT
(
updateWatchData
(
WatchData
))
,
Qt
::
QueuedConnection
);
m_continueAction
=
new
QAction
(
this
);
m_continueAction
->
setText
(
tr
(
"Continue"
));
...
...
src/plugins/debugger/gdb/gdbengine.cpp
View file @
27382f75
...
...
@@ -83,7 +83,7 @@ namespace Internal {
using
namespace
Debugger
::
Constants
;
//#define DEBUG_PENDING 1
//
#define DEBUG_SUBITEM 1
#define DEBUG_SUBITEM 1
#if DEBUG_PENDING
# define PENDING_DEBUG(s) qDebug() << s
...
...
@@ -2958,6 +2958,10 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren)
void
GdbEngine
::
createGdbVariable
(
const
WatchData
&
data
)
{
if
(
data
.
iname
==
_
(
"local.flist.0"
))
{
int
i
=
1
;
Q_UNUSED
(
i
);
}
postCommand
(
_
(
"-var-delete
\"
%1
\"
"
).
arg
(
data
.
iname
),
WatchUpdate
);
QString
exp
=
data
.
exp
;
if
(
exp
.
isEmpty
()
&&
data
.
addr
.
startsWith
(
__
(
"0x"
)))
...
...
@@ -3401,11 +3405,17 @@ void GdbEngine::handleDebuggingHelperValue2(const GdbResultRecord &record,
setWatchDataType
(
data
,
record
.
data
.
findChild
(
"type"
));
setWatchDataDisplayedType
(
data
,
record
.
data
.
findChild
(
"displaytype"
));
handleChildren
(
data
,
contents
);
QList
<
WatchData
>
list
;
handleChildren
(
data
,
contents
,
&
list
);
//for (int i = 0; i != list.size(); ++i)
// qDebug() << "READ: " << list.at(i).toString();
qq
->
watchHandler
()
->
insertBulkData
(
list
);
}
void
GdbEngine
::
handleChildren
(
const
WatchData
&
data0
,
const
GdbMi
&
item
)
void
GdbEngine
::
handleChildren
(
const
WatchData
&
data0
,
const
GdbMi
&
item
,
QList
<
WatchData
>
*
list
)
{
//qDebug() << "HANDLE CHILDREN: " << data0.toString() << item.toString();
WatchData
data
=
data0
;
if
(
!
qq
->
watchHandler
()
->
isExpandedIName
(
data
.
iname
))
data
.
setChildrenUnneeded
();
...
...
@@ -3432,16 +3442,16 @@ void GdbEngine::handleChildren(const WatchData &data0, const GdbMi &item)
setWatchDataValueToolTip
(
data
,
item
.
findChild
(
"valuetooltip"
),
item
.
findChild
(
"valuetooltipencoded"
).
data
().
toInt
());
setWatchDataValueDisabled
(
data
,
item
.
findChild
(
"valuedisabled"
));
//qDebug() << "HANDLE CHILDREN: " << data.toString();
list
->
append
(
data
);
// try not to repeat data too often
WatchData
childtemplate
;
setWatchDataType
(
childtemplate
,
item
.
findChild
(
"childtype"
));
setWatchDataChildCount
(
childtemplate
,
item
.
findChild
(
"childnumchild"
));
//
qDebug() << "CHILD TEMPLATE:" << childtemplate.toString();
qDebug
()
<<
"CHILD TEMPLATE:"
<<
childtemplate
.
toString
();
qq
->
watchHandler
()
->
insertData
(
data
);
int
i
=
0
;
QList
<
WatchData
>
list
;
foreach
(
GdbMi
child
,
children
.
children
())
{
WatchData
data1
=
childtemplate
;
GdbMi
name
=
child
.
findChild
(
"name"
);
...
...
@@ -3463,11 +3473,9 @@ void GdbEngine::handleChildren(const WatchData &data0, const GdbMi &item)
//data1.name += " (" + skey + ")";
data1
.
name
=
skey
;
}
handleChildren
(
data1
,
child
);
list
.
append
(
data1
);
handleChildren
(
data1
,
child
,
list
);
++
i
;
}
qq
->
watchHandler
()
->
insertBulkData
(
list
);
}
void
GdbEngine
::
handleDebuggingHelperValue3
(
const
GdbResultRecord
&
record
,
...
...
src/plugins/debugger/gdb/gdbengine.h
View file @
27382f75
...
...
@@ -241,7 +241,8 @@ private:
void
debugMessage
(
const
QString
&
msg
);
bool
showToolTip
();
void
handleChildren
(
const
WatchData
&
parent
,
const
GdbMi
&
child
);
void
handleChildren
(
const
WatchData
&
parent
,
const
GdbMi
&
child
,
QList
<
WatchData
>
*
insertions
);
const
bool
m_dumperInjectionLoad
;
OutputCollector
m_outputCollector
;
...
...
src/plugins/debugger/watchhandler.cpp
View file @
27382f75
...
...
@@ -1003,7 +1003,7 @@ void WatchHandler::insertBulkData(const QList<WatchData> &list)
{
if
(
list
.
isEmpty
())
return
;
Q
Hash
<
QString
,
QList
<
WatchData
>
>
hash
;
Q
Map
<
QString
,
QList
<
WatchData
>
>
hash
;
foreach
(
const
WatchData
&
data
,
list
)
{
if
(
data
.
isSomethingNeeded
())
...
...
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