Skip to content

Commit 91619c0

Browse files
committed
address comments
1 parent dcb5b25 commit 91619c0

File tree

5 files changed

+86
-71
lines changed

5 files changed

+86
-71
lines changed

lldb/docs/use/variable.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,16 @@ The command to obtain the output shown in the example is:
366366
Initially, we will focus on summary strings, and then describe the Python
367367
binding mechanism.
368368

369+
Summary Format Matching On Pointers
370+
----------------------
371+
372+
When a summary format is registered for a type ``T``, lldb will apply this
373+
format to both ``T`` and ``T*``. -p options could prevent lldb from using this
374+
format to type ``T*``. When -p options is not given, users can use the -d option
375+
to specify how many layer of pointers can be dereferenced at most when matching
376+
the format of type ``T`` (default to 1). It should be noted that the value
377+
object passed to the summary format won't dereferenced at all.
378+
369379
Summary Strings
370380
---------------
371381

lldb/source/API/SBTypeSummary.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ const char *SBTypeSummary::GetData() {
232232

233233
uint32_t SBTypeSummary::GetPtrMatchDepth() {
234234
LLDB_INSTRUMENT_VA(this);
235-
235+
236236
if (!IsValid())
237237
return 0;
238238
return m_opaque_sp->GetPtrMatchDepth();

lldb/source/DataFormatters/TypeCategoryMap.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,14 +184,12 @@ void TypeCategoryMap::Get(FormattersMatchData &match_data, ImplSP &retval) {
184184
if (log) {
185185
for (auto match : match_data.GetMatchesVector()) {
186186
LLDB_LOGF(
187-
log,
188-
"[%s] candidate match = %s %s %s %s ptr-stripped-depth=%u",
189-
__FUNCTION__,
190-
match.GetTypeName().GetCString(),
187+
log, "[%s] candidate match = %s %s %s %s ptr-stripped-depth=%u",
188+
__FUNCTION__, match.GetTypeName().GetCString(),
191189
match.DidStripPointer() ? "strip-pointers" : "no-strip-pointers",
192190
match.DidStripReference() ? "strip-reference" : "no-strip-reference",
193191
match.DidStripTypedef() ? "strip-typedef" : "no-strip-typedef",
194-
match.GetPtrStrippedDepth());
192+
match.GetPtrStrippingDepth());
195193
}
196194
}
197195

lldb/test/API/functionalities/data-formatter/data-formatter-ptr-matching/TestDataFormatterPtrMatching.py

Lines changed: 58 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -38,64 +38,71 @@ def cleanup():
3838

3939
# By default, --pointer-match-depth is 1.
4040
self.runCmd('type summary add --cascade true -s "MyInt" "Int"')
41-
self.expect("frame variable", patterns=[
42-
r".* i = MyInt\n",
43-
r".* i_p = 0x.* MyInt\n",
44-
r".* i_pp = 0x[0-9a-f]+\n",
45-
r".* i_ppp = 0x[0-9a-f]+\n",
46-
r".* f = MyInt\n",
47-
r".* f_p = 0x[0-9a-f]+ MyInt\n",
48-
r".* f_pp = 0x[0-9a-f]+\n",
49-
r".* f_ppp = 0x[0-9a-f]+\n",
50-
r".* fp = 0x[0-9a-f]+ MyInt\n",
51-
r".* fp_p = 0x[0-9a-f]+\n",
52-
r".* fp_pp = 0x[0-9a-f]+\n",
53-
r".* b = MyInt\n",
54-
r".* b_p = 0x[0-9a-f]+ MyInt\n",
55-
r".* b_pp = 0x[0-9a-f]+\n",
56-
r".* bp = 0x[0-9a-f]+ MyInt\n",
57-
r".* bp_p = 0x[0-9a-f]+\n",
58-
r".* bp_pp = 0x[0-9a-f]+\n",
41+
self.expect(
42+
"frame variable",
43+
patterns=[
44+
r".* i = MyInt\n",
45+
r".* i_p = 0x.* MyInt\n",
46+
r".* i_pp = 0x[0-9a-f]+\n",
47+
r".* i_ppp = 0x[0-9a-f]+\n",
48+
r".* f = MyInt\n",
49+
r".* f_p = 0x[0-9a-f]+ MyInt\n",
50+
r".* f_pp = 0x[0-9a-f]+\n",
51+
r".* f_ppp = 0x[0-9a-f]+\n",
52+
r".* fp = 0x[0-9a-f]+ MyInt\n",
53+
r".* fp_p = 0x[0-9a-f]+\n",
54+
r".* fp_pp = 0x[0-9a-f]+\n",
55+
r".* b = MyInt\n",
56+
r".* b_p = 0x[0-9a-f]+ MyInt\n",
57+
r".* b_pp = 0x[0-9a-f]+\n",
58+
r".* bp = 0x[0-9a-f]+ MyInt\n",
59+
r".* bp_p = 0x[0-9a-f]+\n",
60+
r".* bp_pp = 0x[0-9a-f]+\n",
5961
])
6062

6163
self.runCmd('type summary delete "Int"')
6264
self.runCmd(
6365
'type summary add --cascade true --pointer-match-depth 2 -s "MyInt" "Int"')
64-
self.expect("frame variable", patterns=[
65-
r".* i = MyInt\n",
66-
r".* i_p = 0x.* MyInt\n",
67-
r".* i_pp = 0x[0-9a-f]+ MyInt\n",
68-
r".* i_ppp = 0x[0-9a-f]+\n",
69-
r".* f = MyInt\n",
70-
r".* f_p = 0x[0-9a-f]+ MyInt\n",
71-
r".* f_pp = 0x[0-9a-f]+ MyInt\n",
72-
r".* f_ppp = 0x[0-9a-f]+\n",
73-
r".* fp = 0x[0-9a-f]+ MyInt\n",
74-
r".* fp_p = 0x[0-9a-f]+ MyInt\n",
75-
r".* fp_pp = 0x[0-9a-f]+\n",
76-
r".* b = MyInt\n",
77-
r".* b_p = 0x[0-9a-f]+ MyInt\n",
78-
r".* b_pp = 0x[0-9a-f]+ MyInt\n",
79-
r".* bp = 0x[0-9a-f]+ MyInt\n",
80-
r".* bp_p = 0x[0-9a-f]+ MyInt\n",
81-
r".* bp_pp = 0x[0-9a-f]+\n",
66+
self.expect(
67+
"frame variable",
68+
patterns=[
69+
r".* i = MyInt\n",
70+
r".* i_p = 0x.* MyInt\n",
71+
r".* i_pp = 0x[0-9a-f]+ MyInt\n",
72+
r".* i_ppp = 0x[0-9a-f]+\n",
73+
r".* f = MyInt\n",
74+
r".* f_p = 0x[0-9a-f]+ MyInt\n",
75+
r".* f_pp = 0x[0-9a-f]+ MyInt\n",
76+
r".* f_ppp = 0x[0-9a-f]+\n",
77+
r".* fp = 0x[0-9a-f]+ MyInt\n",
78+
r".* fp_p = 0x[0-9a-f]+ MyInt\n",
79+
r".* fp_pp = 0x[0-9a-f]+\n",
80+
r".* b = MyInt\n",
81+
r".* b_p = 0x[0-9a-f]+ MyInt\n",
82+
r".* b_pp = 0x[0-9a-f]+ MyInt\n",
83+
r".* bp = 0x[0-9a-f]+ MyInt\n",
84+
r".* bp_p = 0x[0-9a-f]+ MyInt\n",
85+
r".* bp_pp = 0x[0-9a-f]+\n",
8286
])
8387

8488
self.runCmd('type summary delete "Int"')
8589
self.runCmd(
86-
'type summary add --cascade true --pointer-match-depth 2 -s "MyFoo" "Foo"')
87-
self.expect("frame variable", patterns=[
88-
r".* f = MyFoo\n",
89-
r".* f_p = 0x[0-9a-f]+ MyFoo\n",
90-
r".* f_pp = 0x[0-9a-f]+ MyFoo\n",
91-
r".* f_ppp = 0x[0-9a-f]+\n",
92-
r".* fp = 0x[0-9a-f]+\n",
93-
r".* fp_p = 0x[0-9a-f]+\n",
94-
r".* fp_pp = 0x[0-9a-f]+\n",
95-
r".* b = MyFoo\n",
96-
r".* b_p = 0x[0-9a-f]+ MyFoo\n",
97-
r".* b_pp = 0x[0-9a-f]+ MyFoo\n",
98-
r".* bp = 0x[0-9a-f]+ MyFoo\n",
99-
r".* bp_p = 0x[0-9a-f]+ MyFoo\n",
100-
r".* bp_pp = 0x[0-9a-f]+\n",
90+
'type summary add --cascade true --pointer-match-depth 2 -s "MyFoo" "Foo"'
91+
)
92+
self.expect(
93+
"frame variable",
94+
patterns=[
95+
r".* f = MyFoo\n",
96+
r".* f_p = 0x[0-9a-f]+ MyFoo\n",
97+
r".* f_pp = 0x[0-9a-f]+ MyFoo\n",
98+
r".* f_ppp = 0x[0-9a-f]+\n",
99+
r".* fp = 0x[0-9a-f]+\n",
100+
r".* fp_p = 0x[0-9a-f]+\n",
101+
r".* fp_pp = 0x[0-9a-f]+\n",
102+
r".* b = MyFoo\n",
103+
r".* b_p = 0x[0-9a-f]+ MyFoo\n",
104+
r".* b_pp = 0x[0-9a-f]+ MyFoo\n",
105+
r".* bp = 0x[0-9a-f]+ MyFoo\n",
106+
r".* bp_p = 0x[0-9a-f]+ MyFoo\n",
107+
r".* bp_pp = 0x[0-9a-f]+\n",
101108
])

lldb/test/API/functionalities/data-formatter/data-formatter-ptr-matching/main.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@ struct Int {
22
int i;
33
};
44
typedef Int Foo;
5-
typedef Int* FooP;
5+
typedef Int *FooP;
66
typedef Foo Bar;
7-
typedef Foo* BarP;
7+
typedef Foo *BarP;
88

99
int main() {
1010
Int i = {42};
11-
Int* i_p = &i;
12-
Int** i_pp = &i_p;
13-
Int*** i_ppp = &i_pp;
11+
Int *i_p = &i;
12+
Int **i_pp = &i_p;
13+
Int ***i_ppp = &i_pp;
1414

1515
Foo f = i;
16-
Foo* f_p = &f;
17-
Foo** f_pp = &f_p;
18-
Foo*** f_ppp = &f_pp;
16+
Foo *f_p = &f;
17+
Foo **f_pp = &f_p;
18+
Foo ***f_ppp = &f_pp;
1919

2020
FooP fp = f_p;
21-
FooP* fp_p = &fp;
22-
FooP** fp_pp = &fp_p;
21+
FooP *fp_p = &fp;
22+
FooP **fp_pp = &fp_p;
2323

2424
Bar b = i;
25-
Bar* b_p = &b;
26-
Bar** b_pp = &b_p;
25+
Bar *b_p = &b;
26+
Bar **b_pp = &b_p;
2727

2828
BarP bp = b_p;
29-
BarP* bp_p = &bp;
30-
BarP** bp_pp = &bp_p;
29+
BarP *bp_p = &bp;
30+
BarP **bp_pp = &bp_p;
3131
return 0; // Set break point at this line.
3232
}

0 commit comments

Comments
 (0)