From 50b015bd1887d8237df51ea5ee0f2e9e89525f92 Mon Sep 17 00:00:00 2001 From: Jorge Gorbe Date: Thu, 8 Nov 2012 18:50:15 +0100 Subject: [PATCH] Changes --- samples/view.py | 12 ++++++++---- slides/index.html | 24 ++++++++++++++++++++---- slides/its-free.jpg | Bin 0 -> 31642 bytes 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 slides/its-free.jpg diff --git a/samples/view.py b/samples/view.py index 70f9a63..49cfffb 100644 --- a/samples/view.py +++ b/samples/view.py @@ -19,15 +19,19 @@ def type_has_fields(t): def type_is_pointer(t): basic_type = gdb.types.get_basic_type(t) - return basic_type.code == gdb.TYPE_CODE_PTR + return basic_type.code == gdb.TYPE_CODE_PTR or basic_type.code == gdb.TYPE_CODE_REF def find_outgoing_pointers(value): """Finds all outgoing pointers from a value, traversing each non-pointer member of a composite type (e.g. struct members inside structs) and also each member in every base class, recursively. Returns a dict of {field_name:address} where field_name is a string, and address is a gdb.Value.""" - if type_is_pointer(value.dynamic_type): + try: + valuetype = value.dynamic_type + except gdb.error: + valuetype = value.type + if type_is_pointer(valuetype): return {"*": value} - elif type_has_fields(value.dynamic_type): + elif type_has_fields(valuetype): result = {} for f in value.type.fields(): if f.is_base_class: @@ -388,7 +392,7 @@ def visit_values(node_dict, value, x, y, recursion_level): for (child_name, child_value) in children.iteritems(): # compute child "tree" dimensions (layout is always tree-like even if there are edges that make this a generic graph) if child_value != 0: - child_width, child_height = visit_values(node_dict, child_value.dereference(), children_x, children_y, recursion_level - 1) + child_width, child_height = visit_values(node_dict, child_value.referenced_value(), children_x, children_y, recursion_level - 1) children_y += child_height children_height += child_height width = max(width, NODE_SPACING + child_width) diff --git a/slides/index.html b/slides/index.html index 510d5ce..968388b 100644 --- a/slides/index.html +++ b/slides/index.html @@ -126,8 +126,7 @@ End with a line saying just "end".

Custom commands (2/3)

A more complex example, from PpluX's SLB repo

-
-define luastack
+
define luastack
     set $top = lua_gettop($arg0)
     set $i = 1
     while $i <= $top
@@ -146,7 +145,7 @@ define luastack
         end
         set $i = $i + 1
     end
-
+
@@ -174,11 +173,28 @@ define luastack (gdb) python print "Hello, World!" Hello, World! +

Ok, now what?

+ + +
+

Pretty printing

+ +

Custom commands (python version)

-

+

 class DoNothingCommand(gdb.Command):
     """This command does nothing."""  # docstring
     def __init__(self):
diff --git a/slides/its-free.jpg b/slides/its-free.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c6289ec61785e7bf8ae368fd5f6184a35dcc5e6d
GIT binary patch
literal 31642
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

literal 0
HcmV?d00001

-- 
2.34.1