[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Need help debugging arm application.



Greetings,
I hope this is a good place for this type of questions.

We are developing an application for a TS-TPC-7390 ARM device with Debian as the linux distribution. We are using many libraries (glibc, gdk, gtk, gtkmm, pango, cairo, etc). It also uses multiple threads. The program compiles and execute fine (a bit slow, but fine).

I'm currently in the process of fixing a bug. It only happens when executing on the arm device (works fine on x86). It happens randomly, only on user input (click on a widget), but any widgets on any page can crash it. Sometime it's the first click, sometime it takes 5mins of random clicking, and sometime it never crash until we restart the application.

Upon crashing, while debugging using gdb, we get something like this:
(gdb) bt
#0  0x7f1ffbe4 in ?? ()
Cannot access memory at address 0x989680

This is a corrupt stack probably caused by a multithread problem. I tried to find relevant symbols around this address in memory, but it don't help. The SP register is set to 0x7f1ffb0 and there's a 0x00000000 between the two
Since valgrind don't exist for ARM, I can't count on it. The bad stack address is always the same, so I could try to set a watchpoint on it, but setting a watchpoint on arm seems to set a "software" watchpoint and the application execute about 500x slower, which makes it imposible to use it.

I'm kinda stuck here, trying for 3 days to fix this problem and don't know where to look anymore, hoping this mailing list could point me in the good direction.

Also, would you recommand switching our glibc to uClibc or any similar? Would the application execute faster? If yes, how should I proceed?

Thx
-Dunge


Découvrez les photos les plus intéressantes du jour!
Reply to: