I downloaded SDL 1.3 and tested it together with OpenGL ES on my android 2.2 device. It works fine but I don't get the outputs from the printf
calls. I tried the commands below as mentioned at the android developer page but neither DDMS
in Eclipse nor adb logcat
reports the strings that the program writes using printf
. I made sure to filter for the stdout
tag.
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
What am I missing or doing wrong?
Another way of doing this is having a file /data/local.prop
, containing just the line log.redirect-stdio=true
. Maybe this works better? Also, note that stdout is buffered, so it could be that your output is still sitting in the buffer, waiting to be flushed. You can call fflush
manually to check this.
According to this presentation, log.redirect-stdio
is for Dalvik output, to redirect C/C++ output (such as printf
), you must install busybox on the device and use its xargs
utility like this:
myprogram | xargs log
This obviously works for code that gets called as a standalone executable. If it's only for debugging purposes, you can write a tiny program to call your library and call that from your application using xargs
.