Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
10475124
Commit
10475124
authored
Jul 22, 2010
by
hjk
Browse files
debugger: implement python dumper for std::vector<bool>
parent
3a88a829
Changes
2
Hide whitespace changes
Inline
Side-by-side
share/qtcreator/gdbmacros/gdbmacros.py
View file @
10475124
...
...
@@ -1969,10 +1969,21 @@ def qdump__std__string(d, item):
def
qdump__std__vector
(
d
,
item
):
impl
=
item
.
value
[
"_M_impl"
]
start
=
impl
[
"_M_start"
]
finish
=
impl
[
"_M_finish"
]
type
=
item
.
value
.
type
.
template_argument
(
0
)
alloc
=
impl
[
"_M_end_of_storage"
]
size
=
finish
-
start
isBool
=
str
(
type
)
==
'bool'
if
isBool
:
start
=
impl
[
"_M_start"
][
"_M_p"
]
finish
=
impl
[
"_M_finish"
][
"_M_p"
]
# FIXME: 32 is sizeof(unsigned long) * CHAR_BIT
storagesize
=
32
size
=
(
finish
-
start
)
*
storagesize
size
+=
impl
[
"_M_finish"
][
"_M_offset"
]
size
-=
impl
[
"_M_start"
][
"_M_offset"
]
else
:
start
=
impl
[
"_M_start"
]
finish
=
impl
[
"_M_finish"
]
size
=
finish
-
start
check
(
0
<=
size
and
size
<=
1000
*
1000
*
1000
)
check
(
finish
<=
alloc
)
...
...
@@ -1983,11 +1994,18 @@ def qdump__std__vector(d, item):
d
.
putItemCount
(
size
)
d
.
putNumChild
(
size
)
if
d
.
isExpanded
(
item
):
with
Children
(
d
,
[
size
,
10000
],
item
.
value
.
type
.
template_argument
(
0
)):
p
=
start
for
i
in
d
.
childRange
():
d
.
putItem
(
Item
(
p
.
dereference
(),
item
.
iname
,
i
))
p
+=
1
if
isBool
:
with
Children
(
d
,
[
size
,
10000
],
type
):
for
i
in
d
.
childRange
():
q
=
start
+
i
/
storagesize
data
=
(
q
.
dereference
()
>>
(
i
%
storagesize
))
&
1
d
.
putBoolItem
(
str
(
i
),
select
(
data
,
"true"
,
"false"
))
else
:
with
Children
(
d
,
[
size
,
10000
],
type
):
p
=
start
for
i
in
d
.
childRange
():
d
.
putItem
(
Item
(
p
.
dereference
(),
item
.
iname
,
i
))
p
+=
1
def
qdump__string
(
d
,
item
):
...
...
tests/manual/gdbdebugger/simple/app.cpp
View file @
10475124
...
...
@@ -1199,7 +1199,7 @@ std::string testStdString()
return
str
;
}
std
::
vector
<
int
>
testStdVector
()
void
testStdVector
()
{
std
::
vector
<
int
*>
plist1
;
plist1
.
push_back
(
new
int
(
1
));
...
...
@@ -1233,8 +1233,9 @@ std::vector<int> testStdVector()
std
::
vector
<
bool
>
vec
;
vec
.
push_back
(
true
);
vec
.
push_back
(
false
);
return
flist2
;
vec
.
push_back
(
false
);
vec
.
push_back
(
true
);
vec
.
push_back
(
false
);
}
void
testQStandardItemModel
()
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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