Author: enrico
Date: Wed Oct 22 15:14:09 2014
New Revision: 220414
URL: http://llvm.org/viewvc/llvm-project?rev=220414&view=rev
Log:
Fix a problem where summary strings could not use a synthetically generated
value as part of themselves
Modified:
lldb/trunk/source/Core/Debugger.cpp
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/main.cpp
Modified: lldb/trunk/source/Core/Debugger.cpp
URL:
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Debugger.cpp?rev=220414&r1=220413&r2=220414&view=diff
==============================================================================
--- lldb/trunk/source/Core/Debugger.cpp (original)
+++ lldb/trunk/source/Core/Debugger.cpp Wed Oct 22 15:14:09 2014
@@ -1802,6 +1802,7 @@ FormatPromptRecurse
log->Printf("[Debugger::FormatPrompt] ALL RIGHT: unparsed portion = %s, why
stopping = %d,"
" final_value_type %d",
first_unparsed, reason_to_stop,
final_value_type);
+ target =
target->GetQualifiedRepresentationIfAvailable(target->GetDynamicValueType(),
true).get();
}
}
else
Modified:
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
URL:
http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py?rev=220414&r1=220413&r2=220414&view=diff
==============================================================================
---
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
(original)
+++
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
Wed Oct 22 15:14:09 2014
@@ -90,6 +90,11 @@ class DataFormatterSynthValueTestCase(Te
# check that an aptly defined synthetic provider does not affect
one-lining
self.expect("expression struct S { myInt theInt{12}; }; S()", substrs
= ['(theInt = 12)'])
+
+ # check that we can use a synthetic value in a summary
+ self.runCmd("type summary add hasAnInt -s ${var.theInt}")
+ hi = self.frame().FindVariable("hi")
+ self.assertEqual(hi.GetSummary(), "42")
if __name__ == '__main__':
import atexit
Modified:
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/main.cpp
URL:
http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/main.cpp?rev=220414&r1=220413&r2=220414&view=diff
==============================================================================
---
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/main.cpp
(original)
+++
lldb/trunk/test/functionalities/data-formatter/data-formatter-synthval/main.cpp
Wed Oct 22 15:14:09 2014
@@ -5,11 +5,18 @@ class myInt {
int val() { return theValue; }
};
+class hasAnInt {
+ public:
+ myInt theInt;
+ hasAnInt() : theInt(42) {}
+};
+
myInt operator + (myInt x, myInt y) { return myInt(x.val() + y.val()); }
int main() {
myInt x{3};
myInt y{4};
myInt z {x+y};
+ hasAnInt hi;
return z.val(); // break here
}
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits