Wednesday, May 2, 2012

va_list и gdb

Хорошая штука va_lixt, но под gdb нужно делать страшные комбинации чтобы посмотреть в чем ошибка:
#0  g_logv (log_domain=0x0, log_level=<optimized out>, 
    format=0x406368 "Can not create directory '%s': %s", args1=0x7ffff03a73b8)
    at /build/buildd/glib2.0-2.32.1/./glib/gmessages.c:765
#1  0x00007f483b167172 in g_log (log_domain=<optimized out>, 
    log_level=<optimized out>, format=<optimized out>)
    at /build/buildd/glib2.0-2.32.1/./glib/gmessages.c:792
#2  0x0000000000404e50 in ?? ()
#3  0x0000000000402f38 in ?? ()
#4  0x00007f483ab5f76d in __libc_start_main (main=0x402f20, argc=1, 
    ubp_av=0x7ffff03a7608, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7ffff03a75f8) at libc-start.c:226
#5  0x0000000000402fe9 in ?? ()
#6  0x00007ffff03a75f8 in ?? ()
#7  0x000000000000001c in ?? ()
#8  0x0000000000000001 in ?? ()
#9  0x00007ffff03a7d19 in ?? ()
#10 0x0000000000000000 in ?? ()
(gdb) p *(char **)(((char *)args1[0].reg_save_area)+args1[0].gp_offset)
$8 = 0x113b720 "/var/lib/lightdm/.config/dconf"
(gdb) p *(char **)(((char *)args1[0].reg_save_area)+args1[0].gp_offset+8)
$12 = 0x113c000 "Permission denied"
Но может это просто я неправильный вариант просмотра нашел?

No comments: