views:

252

answers:

3

I've got some trouble with the media backend (mostly Stagefrightplayer) in Android, and I'd like to understand why it throws the errors it does. The errors are usually device spesific, so debugging on an emulator wouldn't be sufficient.

Example:

I/AwesomePlayer(  147): mConnectingDataSource->connect() returned -1004
V/MediaPlayerService(  147): [332] notify (0x272830, 100, 1, -1004)
E/MediaPlayer(24881): error (1, -1004)
E/MediaPlayer(24881): Error (1,-1004)
W/PlayerListener(24881): Received error: what = 1, extra = -1004

Example 2:

E/MediaPlayer(  941): error (1, -2147483648)

I've also gotten the player to bork completely and spit out a traces.txt.

Is there a way to debug what's happening, just like I debug Java code? Thanks.

+1  A: 

Although Android does support remote GDB sessions, this probably will not work for Kernel Side Code. Your best bet is to use a JTAG connection which can be used to perform Stop Mode Debugging. Since stop mode debugging effectively halts the execution of your CPU, you might find this causes problems with Watchdog Timers.

Alternatively, inserting tracing into the kernel code may be easier.

doron
Thanks, but... how will inserting tracing into my Java code help debugging kernel code? Bare with me, I'm ignorant :p
neu242
I meant into the kernel code.
doron