# Should also work <jefyi6bzm6.fsf@sykes.suse.de> (untested):
# set history filename ~/.gdb_history
set history save on
-define rt
- break $arg0
- run
-# clear $arg0
- end
-define ct
- tbreak $arg0
- continue
- end
-define rtl
- tbreak main
- run
- break $arg0
- continue
-# clear $arg0
- end
-define pglist3
+# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=106814
+set complaints 0
+set record insn-number-max 10000000
+define javadump
+ call _Jv_DeepDebug($arg0)
+end
+document javadump
+call _Jv_DeepDebug($arg0)
+end
+define pglist
if (*("$arg1")=='@')
set var $arg1=struct $arg1
- end
+ end
set var $pglist_list=$arg0
while ($pglist_list)
- if (!strcmp("$arg2","."))
+ if $argc==2
print *(($arg1 *)$pglist_list->data)
else
print *(($arg1 *)$pglist_list->data)$arg2
- end
+ end
set var $pglist_list=$pglist_list->next
+ end
+end
+document pglist
+GList or GSList dumper iterating by `->next':
+pglist <head pointer> {<data type>|@<struct data type>} [<data field to display>]
+end
+define plist
+ set var $plist_iter=$arg0
+ while ($plist_iter)
+ if $argc==1
+ print *$plist_iter
+ else
+ if $argc==2
+ print $plist_iter->$arg1
+ else
+ print$arg2 $plist_iter->$arg1
+ end
end
+ set var $plist_iter=$plist_iter->next
end
-define pglist
- pglist3 $arg0 $arg1 .
+end
+document plist
+List dumper iterating by `->next':
+plist <head pointer> [<data field to display>] [/<format>]
+end
+define countlist
+ set var $countlist_iter=$arg0
+ set var $countlist_count=0
+ while ($countlist_iter)
+ set var $countlist_iter=$countlist_iter->next
+ set var $countlist_count=$countlist_count+1
end
+ p $countlist_count
+end
+document countlist
+List elements counter iterating by `->next':
+countlist <head pointer>
+end
+define debug
+ set debug infrun 1
+ set debug lin-lwp 1
+end
+document debug
+set debug infrun 1
+set debug lin-lwp 1
+end
+define sip
+ stepi
+ x/i $pc
+end
+define nip
+ nexti
+ x/i $pc
+end