printfs output in wrong order in MI

Vladimir Prus ghost@cs.msu.su
Wed Apr 12 16:54:00 GMT 2006


Hi,
I'm seing strange behaviour of the "printf" command if used in MI:

    (gdb)
    print &i
    &"print &i\n"
    ~"$1 = (int *) 0xbfc5f484\n"
    ^done
    (gdb)
    printf "%x", &i
    &"printf \"%x\", &i\n"
    ^done
    (gdb)
    ~"bfc5f484"
    -interpreter-exec console "printf \"%x\", &i"
    ^done
    (gdb)
    ~"bfc5f484"

The output of 'print' appears before "^done", but the output of "printf"
appears *after* both "^done", and the prompt, which makes it impossible to
reliably catch the output. 

I'm trying to use 'printf' in order to obtain addresses of all local
variables in one command, without round-trips for every local variable.
This behaviour of 'printfs' seems to prevent my trick from working.

Any ideas why "printf" is so special?

- Volodya







More information about the Gdb mailing list