On Mon, Oct 8, 2012 at 2:47 AM, marcin@xxxxxxxxxx <marcin@xxxxxxxxxx> wrote: > Tristan, Jasper, > > thank you for such quick response! > > I've created debug report from gdb and now I am seeking for unpaired ref/unref. > > Tristan, would you mind if I post a bugzilla bug about adding such > quick tutorial to the docs at > http://developer.gnome.org/gobject/stable/tools-refdb.html? I would > like to use your mail as a starting point. Sorry for late response. Of course I don't mind that, it sounds as though the systemtap stuff is interesting, evidently there have been multiple attempts at approaching this GObject instrumentation problem ... so I hope to see a winner emerge before I ever have to do this by hand again ;-) For higher level languages, where it can be assumed that any reference is accounted for by a given 'owner' object, the pursuit of imbalanced reference counts can even be automated and simplified. However these types of errors should be at least diminished if not non-existent in languages that do ref-counting for you, by way of automating references using declared variables and their scopes... perhaps the instrumentation here needs to be available at a low level (compiled into debug versions of GObject, like the refdbg tool uses), or additionally... automated on a per language binding basis... just food for thought... Anyway, good luck ;-) Cheers, -Tristan > > I've also found > (https://bugzilla.gnome.org/show_bug.cgi?id=606044#c45) there was a > suggestion to add info about using systemtap to docs, but I am unable > to volunteer in such case because I had problems in running systemtap: > > $ stap --ldd debugging/alive.stp -c 'src/myapp -c config.xml' > semantic error: probe point mismatch at position 0 (alternatives: > __nfs __scheduler __signal __tcpmib __vm _linuxmib _signal _sunrpc > _syscall _vfs begin begin(number) end end(number) error error(number) > generic ioblock ioblock_trace ioscheduler ioscheduler_trace ipmib > irq_handler kernel kprobe kprocess linuxmib module(string) nd_syscall > netdev never nfs nfsd perf process process(number) process(string) > procfs procfs(string) scheduler scsi signal socket softirq stap > staprun sunrpc syscall tcp tcpmib timer tty udp vfs vm workqueue): > identifier 'gobject' at debugging/alive.stp:2:7 while resolving probe > point gobject.object_new > source: probe gobject.object_new { > ^ > semantic error: probe point mismatch at position 0 (alternatives: > __nfs __scheduler __signal __tcpmib __vm _linuxmib _signal _sunrpc > _syscall _vfs begin begin(number) end end(number) error error(number) > generic ioblock ioblock_trace ioscheduler ioscheduler_trace ipmib > irq_handler kernel kprobe kprocess linuxmib module(string) nd_syscall > netdev never nfs nfsd perf process process(number) process(string) > procfs procfs(string) scheduler scsi signal socket softirq stap > staprun sunrpc syscall tcp tcpmib timer tty udp vfs vm workqueue): > identifier 'gobject' at :5:7 while resolving probe point > gobject.object_finalize > source: probe gobject.object_finalize { > ^ > Pass 2: analysis failed. Try again with another '--vp 01' option. > > > script was: > > global alive > probe gobject.object_new { > alive[type]++ > } > probe gobject.object_finalize { > alive[type]-- > } > probe end { > printf ("Alive objects: \n") > foreach (a in alive) { > if (alive[a] > 0) > printf ("%d\t%s\n", alive[a], a) > } > } > > > -- > Marcin Lewandowski _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gtk-list