[meta-freescale] image-prelink (can) cause SIGSEGV on program startup (when run under GDB)

Julio Cruz Barroso julio.cruz at smartmatic.com
Sat Mar 19 04:40:49 PDT 2016


Hi Bjørn, Christian,

I'm trying to perform a remote debug with a Qt Application (as you described below).

The GDB (at QT Creator) show a Segmentation Fault at dl-debug.c [1]. Basically, the same situation.

I performed the following steps:

- Sync to the latest jethro revision
- Delete tmp directory
- Rebuild SD image
- Rebuild SDK installer (bitbake my-image -c populate_sdk). 'my-image' inherit populate_sdk_qt5

Some days ago, the remote debugging was working without problem. 

There is a current issue related with this? Any advices or suggestion?

Thanks for your help,

Julio

[1] SIGSEGV during remote debug: [dl-debug.c] Line 55: if (r->r_map == NULL || ldbase != 0)


-----Original Message-----
From: meta-freescale-bounces at yoctoproject.org [mailto:meta-freescale-bounces at yoctoproject.org] On Behalf Of Bjørn Forsman
Sent: Thursday, January 07, 2016 5:49 PM
To: Christian Ege
Cc: meta-freescale
Subject: Re: [meta-freescale] image-prelink (can) cause SIGSEGV on program startup (when run under GDB)

Hi Christian,

On 7 January 2016 at 10:40, Christian Ege <k4230r6 at gmail.com> wrote:
> Hi Bjørn,
> Am 07.01.2016 9:57 vorm. schrieb "Bjørn Forsman" <bjorn.forsman at gmail.com>:
>>
>> Hi all,
>>
>> Just FYI, I spent 2 days debugging why my application would fail to 
>> start when run under GDB (gdbserver). It received SIGSEGV _before_ 
>> entering main. Turns out that by removing "image-prelink" from 
>> local.conf fixes it.
>>
> From my experience image-prelink and using the OpenEmbedded SDKs is 
> not recommended. Maybe your SDK is older than your current rootfs this 
> can cause GDB to struggle.

Thanks for the data point. The thing is, debugging worked fine for a long time. But when I added another library dependency, things broke.

Unless the build system is completely borked, rootfs and SDK should be in sync. I explicitly rebuilt and re-flashed exactly to eliminate that kind of trouble.

> Anyway we had big issues when we tried to analyse stack backtraces 
> with our rootfs and marching SDK. Because the libc in the SDK is not 
> prelinked and the checksum check in GDB is not passed GDB barked out some warning.

I guess you mean warnings like:

(gdb) set sysroot
~/poky-toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
warning: .dynamic section for
"/home/bfo/poky-toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Multimedia.so.5"
is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for
"/home/bfo/poky-toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Widgets.so.5"
is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for
"/home/bfo/poky-toolchain/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Gui.so.5"
is not at the expected address (wrong library or version mismatch?) ...

The weird part is that these warnings seem to come no matter what (prelink or not). (I guess I should triple check that...)

> Maybe there is a magic knob to tune but we did not found it. But the 
> last time I checked was in an older Yocto/OpenEmbedded environment.

I'm on early Yocto 2.0 / Jethro. I plan on updating soon, there are probably many fixes.

Best regards,
Bjørn Forsman
--
_______________________________________________
meta-freescale mailing list
meta-freescale at yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-freescale


More information about the meta-freescale mailing list