Skip to content

Commit 9ce55b3

Browse files
committed
Fix LLDB heap_page command
Move _append_command_output and _append_expression to LLDBInterface, and use it from HeapPageCommand after setting result.
1 parent 7564793 commit 9ce55b3

3 files changed

Lines changed: 14 additions & 13 deletions

File tree

misc/lldb_rb/commands/heap_page_command.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ class HeapPageCommand(RbBaseCommand):
88
help_string = "prints out 'struct heap_page' for a VALUE pointer in the page"
99

1010
def call(self, debugger, command, exe_ctx, result):
11+
self.result = result
1112
self.t_heap_page_body = self.target.FindFirstType("struct heap_page_body")
1213
self.t_heap_page_ptr = self.target.FindFirstType("struct heap_page").GetPointerType()
1314

1415
page = self._get_page(self.frame.EvaluateExpression(command))
1516
page.Cast(self.t_heap_page_ptr)
1617

17-
self._append_expression(debugger, "(struct heap_page *) %0#x" % page.GetValueAsUnsigned(), result)
18-
self._append_expression(debugger, "*(struct heap_page *) %0#x" % page.GetValueAsUnsigned(), result)
18+
self._append_expression("(struct heap_page *) %0#x" % page.GetValueAsUnsigned())
19+
self._append_expression("*(struct heap_page *) %0#x" % page.GetValueAsUnsigned())
1920

2021
def _get_page(self, val):
2122
addr = val.GetValueAsUnsigned()

misc/lldb_rb/lldb_interface.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,14 @@ def build_environment(self, debugger):
55
self.process = self.target.GetProcess()
66
self.thread = self.process.GetSelectedThread()
77
self.frame = self.thread.GetSelectedFrame()
8+
9+
def _append_command_output(self, command):
10+
output1 = self.result.GetOutput()
11+
self.debugger.GetCommandInterpreter().HandleCommand(command, self.result)
12+
output2 = self.result.GetOutput()
13+
self.result.Clear()
14+
self.result.write(output1)
15+
self.result.write(output2)
16+
17+
def _append_expression(self, expression):
18+
self._append_command_output("expression " + expression)

misc/lldb_rb/utils.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,6 @@ def __init__(self, debugger, result, ruby_globals):
88
self.result = result
99
self.ruby_globals = ruby_globals
1010

11-
def _append_command_output(self, command):
12-
output1 = self.result.GetOutput()
13-
self.debugger.GetCommandInterpreter().HandleCommand(command, self.result)
14-
output2 = self.result.GetOutput()
15-
self.result.Clear()
16-
self.result.write(output1)
17-
self.result.write(output2)
18-
19-
def _append_expression(self, expression):
20-
self._append_command_output("expression " + expression)
21-
2211
def string2cstr(self, rstring):
2312
"""Returns the pointer to the C-string in the given String object"""
2413
if rstring.TypeIsPointerType():

0 commit comments

Comments
 (0)