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



      Offrez un compte Flickr Pro à vos amis et à votre famille.
http://www.flickr.com/gift/

Reply via email to