[Converted from Gnats 1337] printcmd.c is taking user input strings and then passing them through to printf. It should, I think, instead implement a full "%" parser. If nothing else it would eliminate a few limitations (such as %ll support being dependant on the host's CC and printf). Release: unknown
From: Daniel Jacobowitz <drow@mvista.com> To: ac131313@redhat.com Cc: gdb-gnats@sources.redhat.com Subject: Re: cli/1337: -Wformat-nonliteral vs printcmd.c - make "(gdb) printf" host independant Date: Mon, 18 Aug 2003 00:17:01 -0400 On Sat, Aug 16, 2003 at 06:06:30PM -0000, ac131313@redhat.com wrote: > > >Number: 1337 > >Category: cli > >Synopsis: -Wformat-nonliteral vs printcmd.c - make "(gdb) printf" host independant > >Confidential: no > >Severity: serious > >Priority: medium > >Responsible: unassigned > >State: open > >Class: maintenance > >Submitter-Id: net > >Arrival-Date: Sat Aug 16 18:08:01 UTC 2003 > >Closed-Date: > >Last-Modified: > >Originator: ac131313@redhat.com > >Release: unknown-1.0 > >Organization: > >Environment: > > >Description: > printcmd.c is taking user input strings and then passing them through > to printf. It should, I think, instead implement a full "%" parser. > If nothing else it would eliminate a few limitations (such as %ll > support being dependant on the host's CC and printf). Could we use the publicly available libvsnprintf for this? I think it's a GNU or else public domain project; there was some talk about adding it to libiberty. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer
From: Andrew Cagney <ac131313@redhat.com> To: Daniel Jacobowitz <drow@mvista.com> Cc: gdb-gnats@sources.redhat.com Subject: Re: cli/1337: -Wformat-nonliteral vs printcmd.c - make "(gdb) printf" host independant Date: Mon, 18 Aug 2003 11:34:09 -0400 > Description: > >> printcmd.c is taking user input strings and then passing them through >> to printf. It should, I think, instead implement a full "%" parser. >> If nothing else it would eliminate a few limitations (such as %ll >> support being dependant on the host's CC and printf). > > > Could we use the publicly available libvsnprintf for this? I think > it's a GNU or else public domain project; there was some talk about > adding it to libiberty. Does it use <stdargs.h>? If not that, and the type casting system, would also need to be abstracted. GDB's printf [effectively] extracts its argument list from an array of 'struct value'. Andrew
From: Daniel Jacobowitz <drow@mvista.com> To: Andrew Cagney <ac131313@redhat.com> Cc: gdb-gnats@sources.redhat.com Subject: Re: cli/1337: -Wformat-nonliteral vs printcmd.c - make "(gdb) printf" host independant Date: Mon, 18 Aug 2003 11:34:59 -0400 On Mon, Aug 18, 2003 at 11:34:09AM -0400, Andrew Cagney wrote: > >Description: > > > >>printcmd.c is taking user input strings and then passing them through > >>to printf. It should, I think, instead implement a full "%" parser. > >>If nothing else it would eliminate a few limitations (such as %ll > >>support being dependant on the host's CC and printf). > > > > > >Could we use the publicly available libvsnprintf for this? I think > >it's a GNU or else public domain project; there was some talk about > >adding it to libiberty. > > Does it use <stdargs.h>? If not that, and the type casting system, > would also need to be abstracted. GDB's printf [effectively] extracts > its argument list from an array of 'struct value'. No idea. It could probably be adapted. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer
We have the parser now, but still not the formatting part. So, things like %ll are still dependent on the host. This has gotten into gdbserver now as well.
I think that now there isn't any big issue with relying on the host printf in the limited way that we do.