Am 27.11.2011 22:19, schrieb Rich Coe:
On Sun, 27 Nov 2011 21:13:05 +0100 Christoph Bartoschek
wrote: 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
I see one four calls to __register_printf_specifier: #0 __register_printf_specifier (spec=102, converter=0x7fffcf1ab060, arginfo=0x7fffcf1aafe0) at reg-printf.c:46 #1 0x00007fffcf1928a2 in ?? () from /usr/lib64/libquadmath.so.0 #0 __register_printf_specifier (spec=101, converter=0x7fffcf1ab060, arginfo=0x7fffcf1aafe0) at reg-printf.c:46 #1 0x00007fffcf1928d2 in ?? () from /usr/lib64/libquadmath.so.0 #0 __register_printf_specifier (spec=69, converter=0x7fffcf1ab060, arginfo=0x7fffcf1aafe0) at reg-printf.c:46 #1 0x00007fffcf1928ea in ?? () from /usr/lib64/libquadmath.so.0 #0 __register_printf_specifier (spec=103, converter=0x7fffcf1ab060, arginfo=0x7fffcf1aafe0) at reg-printf.c:46 #1 0x00007fffcf192902 in ?? () from /usr/lib64/libquadmath.so.0 Christoph -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org