Ludovic Brenta wrote:
I've just received a new laptop to replace my old IBM ThinkPad T22.
The build time for gnat-gps went down from 220 minutes to 17 minutes.
It's an HP Compaq nx6325 with dual-core AMD Turion 64x2 TL-60 @2GHz,
and 2 GB of RAM.  Got it with FreeDOS preloaded instead of Redmond's
stuff, too, so I paid no "tax" on it :).

Drool...

PS. I'll upload amd64 instead of i386 binaries; wait for the buildds
to produce 32-bit binaries.

Sounds like I'll wanna grab the current source, but it also sounds like the changes you made and the changes I made are quite similar.


Tracking down this issue is proving to be a real headache. The crashes come in two forms: SIGSEGV when allocating or freeing memory (often preceded by glibc throwing a notice of corrupt memory), and an unfielded SIGABRT, often also preceded by the same glibc message. The unhandled SIGABRT is particularly annoying, since it seems that all sorts of signals get thrown around within the application, so I can't just set up my debugger to stop on SIGABRT.

It's crashing prior to throwing up the file selector dialog box, or sometimes while it's in the process of doing so. When it manages to get the file selector on the screen, some of the text (e.g., the current directory) is corrupt. So it's definitely a memory corruption issue.

I have a nasty suspicion that the problem is in the Ada GTK binding libraries, but I can't at all be certain of that at this point.

Are there any unit tests of the Ada GTK binding library? Running them under something like Valgrind or Electric Fence might reveal bugs that would be difficult to find in something more complex like GNAT-GPS.


That said, valgrind against the new GNAT-GPS binary you released shows something interesting:


==22897== Invalid write of size 8
==22897== at 0x60166AF: system__finalization_implementation__detach_from_final_list (in /usr/lib/libgnat-4.1.so.1) ==22897== by 0x601674D: system__finalization_implementation__finalize_one (in /usr/lib/libgnat-4.1.so.1)


There are 3 of those, as well as one of these:


==22897== Invalid read of size 8
==22897== at 0x601684E: system__finalization_implementation__attach_to_final_list (in /usr/lib/libgnat-4.1.so.1)


These sound to me like they are attempting to read/write pointers, but what was allocated was an int.



And this is also interesting (there are 4 of these):

==22897==  Address 0xA088160 is 120 bytes inside a block of size 968 free'd




Anyway, I'll keep working on it as I find the time, but it's tough going at the moment...




--
Kevin Brown                                           [EMAIL PROTECTED]


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to