From 70702c1d4ae6b0ec84b88bdb407ea7561a457dd8 Mon Sep 17 00:00:00 2001 From: Dave Townsend Date: Wed, 8 Aug 2018 15:11:22 +0000 Subject: [PATCH] Bug 1481555: Use lldb's python API to summarise nsAtoms. r=froydnj Differential Revision: https://phabricator.services.mozilla.com/D2894 --HG-- extra : moz-landing-system : lando --- .lldbinit | 3 --- third_party/python/lldbutils/lldbutils/general.py | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.lldbinit b/.lldbinit index 1d090d0f2c63..65e91f8da7ca 100644 --- a/.lldbinit +++ b/.lldbinit @@ -21,9 +21,6 @@ settings set target.inline-breakpoint-strategy always # object as being of type "nsBlockFrame *" rather than "nsIFrame *". settings set target.prefer-dynamic-value run-target -# Show the string value in atoms. -type summary add nsAtom --summary-string "${var.mString}" - # Show the value of text nodes. type summary add nsTextNode --summary-string "${var.mText}" diff --git a/third_party/python/lldbutils/lldbutils/general.py b/third_party/python/lldbutils/lldbutils/general.py index c8cfd27c28f7..9c2e1df3f7df 100644 --- a/third_party/python/lldbutils/lldbutils/general.py +++ b/third_party/python/lldbutils/lldbutils/general.py @@ -6,6 +6,12 @@ def summarize_string(valobj, internal_dict): length = valobj.GetChildMemberWithName("mLength").GetValueAsUnsigned(0) return utils.format_string(data, length) +def summarize_atom(valobj, internal_dict): + target = lldb.debugger.GetSelectedTarget() + length = valobj.GetChildMemberWithName("mLength").GetValueAsUnsigned() + string = target.EvaluateExpression("(char16_t*)%s.GetUTF16String()" % valobj.GetName()) + return utils.format_string(string, length) + class TArraySyntheticChildrenProvider: def __init__(self, valobj, internal_dict): self.valobj = valobj @@ -98,6 +104,7 @@ def init(debugger): debugger.HandleCommand("type summary add nsFixedCString -F lldbutils.general.summarize_string") debugger.HandleCommand("type summary add nsAutoString -F lldbutils.general.summarize_string") debugger.HandleCommand("type summary add nsAutoCString -F lldbutils.general.summarize_string") + debugger.HandleCommand("type summary add nsAtom -F lldbutils.general.summarize_atom") debugger.HandleCommand("type synthetic add -x \"nsTArray<\" -l lldbutils.general.TArraySyntheticChildrenProvider") debugger.HandleCommand("type synthetic add -x \"AutoTArray<\" -l lldbutils.general.TArraySyntheticChildrenProvider") debugger.HandleCommand("type synthetic add -x \"FallibleTArray<\" -l lldbutils.general.TArraySyntheticChildrenProvider")