* Quotes after --args [not found] <1339164112.4081.ezmlm@sourceware.org> @ 2012-06-08 14:21 ` "Markus Bühren" 2012-06-08 14:50 ` Eli Zaretskii 0 siblings, 1 reply; 2+ messages in thread From: "Markus Bühren" @ 2012-06-08 14:21 UTC (permalink / raw) To: gdb Hi, I am using the GNU gdb 6.8 under Windows. I am trying to run a program that is invoked like test.exe -f "my testfile.txt" in batch mode. This is my command line: gdb --eval-command=run --batch --args test.exe -f "my testfile.txt" My program should get two arguments, '-f' and 'my testfile.txt'. However, replacing my actual program test.exe by a program that just prints the input arguments, I get the following result: C:\>gdb --eval-command=run --batch --args test.exe -f "my testfile.txt" [New thread 6180.0xad0] argv[0] = >>C:/test.exe<< argv[1] = >>-f<< argv[2] = >>my\<< argv[3] = >>testfile.txt<< Program exited normally. Can you help me to avoid that the file name is splitted into two arguments, with replacing the blank ' ' after 'my' by a backslash '\'? I have tried a lot of combinations of double double quotes '""', escaped double quotes '\"' and so on but I did not manage to get the file name passed as a single argument into my program. Yours Markus PS: Renaming the file is not an option - actually, I already simplified matters here to a file name with a blank in it. PPS: For your reference, this is the C code of my simple program returning the arguments: #include <stdio.h> void main(int argc, char *argv[]) { int k; for(k = 0; k < argc; k++) { printf("argv[%d] = >>%s<<\n", k, argv[k]); } } ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Quotes after --args 2012-06-08 14:21 ` Quotes after --args "Markus Bühren" @ 2012-06-08 14:50 ` Eli Zaretskii 0 siblings, 0 replies; 2+ messages in thread From: Eli Zaretskii @ 2012-06-08 14:50 UTC (permalink / raw) To: Markus Bühren; +Cc: gdb > Date: Fri, 08 Jun 2012 16:21:02 +0200 > From: "Markus Bühren" <bhr2@gmx.de> > > gdb --eval-command=run --batch --args test.exe -f "my testfile.txt" > > My program should get two arguments, '-f' and 'my testfile.txt'. However, replacing my actual program test.exe by a program that just prints the input arguments, I get the following result: > > C:\>gdb --eval-command=run --batch --args test.exe -f "my testfile.txt" > [New thread 6180.0xad0] > argv[0] = >>C:/test.exe<< > argv[1] = >>-f<< > argv[2] = >>my\<< > argv[3] = >>testfile.txt<< > > Program exited normally. > > Can you help me to avoid that the file name is splitted into two arguments, with replacing the blank ' ' after 'my' by a backslash '\'? I have tried a lot of combinations of double double quotes '""', escaped double quotes '\"' and so on but I did not manage to get the file name passed as a single argument into my program. It's a bug. GDB handles the whitespace in a way that works on Posix platforms, but not on Windows. > PS: Renaming the file is not an option - actually, I already simplified matters here to a file name with a blank in it. You can always use its 8+3 alias, something like mytest~1.txt (use the "dir /x" command from the shell prompt to see the actual name), instead of the long name. This is a workaround, though. ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-06-08 14:50 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <1339164112.4081.ezmlm@sourceware.org> 2012-06-08 14:21 ` Quotes after --args "Markus Bühren" 2012-06-08 14:50 ` Eli Zaretskii
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).