This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SIGABORT with LibC 6 on ARM 7 Sitara

(Sorry for my bad english)

I've to developing

  • PC with Qt 4.8, GCC > 4.4, Intel processors with Debian 7 AMD64 with QCreator (Try with Core 2 Duo et i7)
  • ARM 335X Ti Sitara dev kit (tactil, wifi) with a modified Debian 7

When I'm using my program on a computer, 0 problem, 0 segfault, 0 ... : It's appear very nice !

When the Sitara launch the program, a SIGABRT appear in 30 - 60 seconds and kill my app with this message :

 *** glibc detected *** /home/root/myApp : corrupted double-linked list: 0x00d3e440 ***

Solutions which do nothing ...

  • Check QML Debug
  • Try to use gdbserver (on Sitara) and gdb (on my computer), it result SIGABRT in lib C 6 with ASM (all the time on the same address)
  • Try to install Valgrind on the Sitara, but i can't
  • Use the option : export MALLOC_CHECK_=0 but it's appear SIGBUS and others bad errors
  • Try to get the lastest Sitara SDK but it's the same
  • Try to reinstall severals times all
  • Try to use an other Qt app, and the same appear too.
  • Check the Sitara RAM
  • Try to take a very basic Rev on SVN and it do the same

It's a big nightmare !

So if you have an idea ... i'm listening you !

(link : http://stackoverflow.com/questions/25428211/sigabort-with-libc-6-on-arm-7-sitara)

  • Hi Thomas,

    Searching online for this particular error message returns a lot of results. Some of them suggest that this may be caused by a function returning incorrect value or pointer to an area which no longer has meaningful information.

    Best regards,
    Miroslav

  • Regarding your Valgrind problems, here is my experience from some time ago:

    This was tested with TI AM335x SDK version 06.00.00.00, which uses arm-linux-gnueabihf toolchain with hard-float support. Here is how I managed to cross compile Valgrind under Ubuntu 12.04:

    1. I downloaded and extracted valgrind-3.9.0.

    2. Export some variables and add the toolchain path to the $PATH variable:
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm
    export PATH=$PATH:$HOME/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin
    export CC=arm-linux-gnueabihf-gcc

    3. ./configure --host=armv7-none-linux-gnueabihf --target=arm-none-linux-gnueabihf --build=i386-ubuntu-linux --prefix=<path_to_your_target_rootfs_to_use_for_the_make_install_command>

    4. make

    5. make install

    6. Then I ran the following command for test purposes and it seems to work OK:

    root@am335x-evm:~# valgrind cputype
    ==1714== Memcheck, a memory error detector
    ==1714== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
    ==1714== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
    ==1714== Command: /usr/bin/cputype
    ==1714==
    ==1715==
    ==1715== HEAP SUMMARY:
    ==1715==     in use at exit: 0 bytes in 0 blocks
    ==1715==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
    ==1715==
    ==1715== All heap blocks were freed -- no leaks are possible
    ==1715==
    ==1715== For counts of detected and suppressed errors, rerun with: -v
    ==1715== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
    ==1717==
    ==1717== HEAP SUMMARY:
    ==1717==     in use at exit: 0 bytes in 0 blocks
    ==1717==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
    ==1717==
    ==1717== All heap blocks were freed -- no leaks are possible
    ==1717==
    ==1717== For counts of detected and suppressed errors, rerun with: -v
    ==1717== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
    TI33XX
    ==1714==
    ==1714== HEAP SUMMARY:
    ==1714==     in use at exit: 0 bytes in 0 blocks
    ==1714==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
    ==1714==
    ==1714== All heap blocks were freed -- no leaks are possible
    ==1714==
    ==1714== For counts of detected and suppressed errors, rerun with: -v
    ==1714== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

    Best regards,
    Miroslav

  • Hi,


    Our special kernel contains some bug ... but Valgrind is usefully :) Thank you