This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GDB printf command


Daniel Jacobowitz wrote:
Specifically '%lf' is not permitted. This used to work and is permitted by both C90 and C99.

I don't remember what reference I used, but in C99 I see that this is deliberately ignored and the same as %f. Seems dumb to me, but there you go.

Sorry, I opened my C90 standard at the wrong page and read that '%lf' is accepted for scanf by mistake - C90 says it is undefined for printf. C99 however ignores it, as you say, but that is not 'bad' as defined by GDB at present. It should be either passed through or converted to '%f'.


It seems to me, as I wrote earlier, that the right thing to do would be
to change it to work on target types rather than host types.  It also
seems to me that the right way to do this would be to reuse the printf
format string parser from gnulib.  We will have to map target types on
to host types to get that to work, which will be a little hokey, but it
should be doable for all interesting cases.

The expression parser/evaluator must use host types at some level. Does this not have similar horrors hidden away? If this can convert target types to host types (of at least the same precision) can the printf not be implemented with the same mapping somehow?


Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]