On Sun, 27 Nov 2011 21:13:05 +0100
Christoph Bartoschek
Am 27.11.2011 16:40, schrieb Rich Coe:
On Sat, 26 Nov 2011 15:04:43 -0600 Rich Coe
wrote: On Sat, 26 Nov 2011 18:55:43 +0100 I've set a breakpoint on register_printf_function. There is no call to it.
It might also be calling register_printf_specifier() which is an alias for register_printf_function(), or calling __register_printf_specifier() which is the real entry point.
The tables you mentioned in an earlier post seem to be empty:
You're only printing the zero-th element of the table. Since they are allocated, they are being used.
(gdb) p __printf_function_table[0] $4 = (printf_function *) 0 (gdb) p __printf_modifier_table[0] $5 = (struct printf_modifier_record *) 0x0 (gdb) p __printf_va_arg_table[0] $6 = (printf_va_arg_function *) 0x7fffcf1ab0b0
Is there anything else I could try? Besides recompiling glibc and the program I use I think I could add debug statements in any code.
You could override the __register_printf_specifier() without recompiling glibc. I'll see if I can make a working example. Rich -- Rich Coe rcoe@wi.rr.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org