diff options
Diffstat (limited to '.gdbinit')
-rw-r--r-- | .gdbinit | 66 |
1 files changed, 32 insertions, 34 deletions
@@ -1,5 +1,3 @@ -set startup-with-shell off - define hook-run set $color_type = 0 set $color_highlite = 0 @@ -67,7 +65,7 @@ define rp printf "%sT_OBJECT%s: ", $color_type, $color_end print ((struct RObject *)($arg0))->basic if ($flags & ROBJECT_EMBED) - print/x *((VALUE*)((struct RObject*)($arg0))->as.ary) @ (ROBJECT_EMBED_LEN_MAX+0) + print/x *((VALUE*)((struct RObject*)($arg0))->as.ary) @ (rb_shape_get_shape($arg0)->capacity) else print (((struct RObject *)($arg0))->as.heap) if (((struct RObject*)($arg0))->as.heap.numiv) > 0 @@ -104,8 +102,8 @@ define rp (($rsflags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2) set print address off output *(char *)(($rsflags & RUBY_FL_USER1) ? \ - ((struct RString*)$regsrc)->as.heap.ptr : \ - ((struct RString*)$regsrc)->as.ary) @ $len + ((struct RString*)$regsrc)->as.heap.ptr : \ + ((struct RString*)$regsrc)->as.ary) @ $len set print address on printf " len:%ld ", $len if $flags & RUBY_FL_USER6 @@ -126,26 +124,26 @@ define rp printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len printf "(embed) " if ($len == 0) - printf "{(empty)} " + printf "{(empty)} " else - print/x *((VALUE*)((struct RArray*)($arg0))->as.ary) @ $len - printf " " + print/x *((VALUE*)((struct RArray*)($arg0))->as.ary) @ $len + printf " " end else set $len = ((struct RArray*)($arg0))->as.heap.len printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len if ($flags & RUBY_FL_USER2) - printf "(shared) shared=" - output/x ((struct RArray*)($arg0))->as.heap.aux.shared_root - printf " " + printf "(shared) shared=" + output/x ((struct RArray*)($arg0))->as.heap.aux.shared_root + printf " " else - printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa + printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa end if ($len == 0) - printf "{(empty)} " + printf "{(empty)} " else - print/x *((VALUE*)((struct RArray*)($arg0))->as.heap.ptr) @ $len - printf " " + print/x *((VALUE*)((struct RArray*)($arg0))->as.heap.ptr) @ $len + printf " " end end print (struct RArray *)($arg0) @@ -445,8 +443,8 @@ define output_string (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2) if $len > 0 output *(char *)(($flags & RUBY_FL_USER1) ? \ - ((struct RString*)($arg0))->as.heap.ptr : \ - ((struct RString*)($arg0))->as.ary) @ $len + ((struct RString*)($arg0))->as.heap.ptr : \ + ((struct RString*)($arg0))->as.ary) @ $len else output "" end @@ -459,8 +457,8 @@ define print_string (($flags & (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|RUBY_FL_USER5|RUBY_FL_USER6)) >> RUBY_FL_USHIFT+2) if $len > 0 printf "%s", *(char *)(($flags & RUBY_FL_USER1) ? \ - ((struct RString*)($arg0))->as.heap.ptr : \ - ((struct RString*)($arg0))->as.ary) @ $len + ((struct RString*)($arg0))->as.heap.ptr : \ + ((struct RString*)($arg0))->as.ary) @ $len end end @@ -689,11 +687,6 @@ define nd_stts end -define nd_entry - printf "%su3.entry%s: ", $color_highlite, $color_end - p ($arg0).u3.entry -end - define nd_vid printf "%su1.id%s: ", $color_highlite, $color_end p ($arg0).u1.id @@ -868,22 +861,22 @@ define rb_numtable_entry set $rb_numtable_p = $rb_numtable_tbl->as.packed.bins while $rb_numtable_p && $rb_numtable_p < $rb_numtable_tbl->as.packed.bins+$rb_numtable_tbl->num_entries if $rb_numtable_p.k == $rb_numtable_id - set $rb_numtable_key = $rb_numtable_p.k - set $rb_numtable_rec = $rb_numtable_p.v - set $rb_numtable_p = 0 + set $rb_numtable_key = $rb_numtable_p.k + set $rb_numtable_rec = $rb_numtable_p.v + set $rb_numtable_p = 0 else - set $rb_numtable_p = $rb_numtable_p + 1 + set $rb_numtable_p = $rb_numtable_p + 1 end end else set $rb_numtable_p = $rb_numtable_tbl->as.big.bins[st_numhash($rb_numtable_id) % $rb_numtable_tbl->num_bins] while $rb_numtable_p if $rb_numtable_p->key == $rb_numtable_id - set $rb_numtable_key = $rb_numtable_p->key - set $rb_numtable_rec = $rb_numtable_p->record - set $rb_numtable_p = 0 + set $rb_numtable_key = $rb_numtable_p->key + set $rb_numtable_rec = $rb_numtable_p->record + set $rb_numtable_p = 0 else - set $rb_numtable_p = $rb_numtable_p->next + set $rb_numtable_p = $rb_numtable_p->next end end end @@ -961,7 +954,7 @@ define iseq set $operand_size = ((INSN*)($arg0))->operand_size set $operands = ((INSN*)($arg0))->operands while $i < $operand_size - rp $operands[$i++] + rp $operands[$i++] end end end @@ -1279,7 +1272,7 @@ document rb_count_objects Counts all objects grouped by type. end -# Details: https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB +# Details: https://github.com/ruby/ruby/wiki/Machine-Instructions-Trace-with-GDB define trace_machine_instructions set logging enabled set height 0 @@ -1348,3 +1341,8 @@ define print_flags printf "RUBY_FL_USER17 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER17 ? "1" : "0" printf "RUBY_FL_USER18 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_USER18 ? "1" : "0" end + +source -s misc/gdb.py + +# Moved from beginning, since it fails on older gdbs +set startup-with-shell off |