Debugging VICE emulator for AVR32

View: New views
5 Messages — Rating Filter:   Alert me  

Debugging VICE emulator for AVR32

by John Voltz-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

For some time now, I have been trying to debug the VICE emulator in buildroot. There seems to be a problem with uClibc 0.9.29. VICE will not start on x86 or on AVR32, but it would run in the past on uClibc 0.9.28. In fact, the old binary of VICE that I built for 0.9.28 will run with 0.9.29. I find that strange. I'm hoping someone can help me make sense of the gdb info. Here is where the segfault occurs immediately after starting VICE on AVR32:

    0x2ada63d4    <_pthread_cleanup_push_defer>:            pushm r4-r7,lr
-    0x2ada63d6    <_pthread_cleanup_push_defer+2>:        lddpc r6,0x2ada63f0 <_pthread_cleanup_push_defer+28>
-    0x2ada63d8    <_pthread_cleanup_push_defer+4>:        rsub r6,pc
-    0x2ada63da    <_pthread_cleanup_push_defer+6>:        mov r8,18
-    0x2ada63de    <_pthread_cleanup_push_defer+10>:        ld.w r8,r6[r8<<0x2]
-    0x2ada63e2    <_pthread_cleanup_push_defer+14>:        ld.w r8,r8[172]
-    0x2ada63e6    <_pthread_cleanup_push_defer+18>:        cp.w r8,0
-    0x2ada63e8    <_pthread_cleanup_push_defer+20>:        breq 0x2ada63ec <_pthread_cleanup_push_defer+24>
-    0x2ada63ea    <_pthread_cleanup_push_defer+22>:        icall r8
-    0x2ada63ec    <_pthread_cleanup_push_defer+24>:        popm r4-r7,pc
-    0x2ada63ee    <_pthread_cleanup_push_defer+26>:        add r0,r0
-    0x2ada63f0    <_pthread_cleanup_push_defer+28>:        *unknown*
-    0x2ada63f2    <_pthread_cleanup_push_defer+30>:        breq 0x2ada6482 <__libc_pthread_init+38>

Register contents:
r0    {0x0}
r1    {0x2adddffc}
r2    {0x2adde000}
r3    {0x2adddff8}
r4    {0x7fc6b688}
r5    {0x0}
r6    {0x2ada9f58}
r7    {0x2add82e0}
r8    {0x2ada63d4}
r9    {0x0}
r10    {0x2adab600}
r11    {0x2ada6338}
r12    {0x7fc6b64c}
sp    {0x7fa6e010}
lr    {0x2ada63ec}
pc    {0x2ada63d4}


_______________________________________________
buildroot mailing list
buildroot@...
http://busybox.net/mailman/listinfo/buildroot

Re: [BR-AVR32] Debugging VICE emulator for AVR32

by Hans-Christian Egtvedt-5 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, 2008-06-18 at 21:44 -0400, John Voltz wrote:

> Hi,
>
> For some time now, I have been trying to debug the VICE emulator in
> buildroot. There seems to be a problem with uClibc 0.9.29. VICE will
> not start on x86 or on AVR32, but it would run in the past on uClibc
> 0.9.28. In fact, the old binary of VICE that I built for 0.9.28 will
> run with 0.9.29. I find that strange. I'm hoping someone can help me
> make sense of the gdb info. Here is where the segfault occurs
> immediately after starting VICE on AVR32:
>

Do you know exactly where it segfaults? Which line in the assembler dump
below? Which toolchain are you using? I would recommend using the
toolchain in the latest Buildroot for AVR32 v2.2.0-rc3.

>     0x2ada63d4    <_pthread_cleanup_push_defer>:            pushm r4-r7,lr
> -    0x2ada63d6    <_pthread_cleanup_push_defer+2>:        lddpc r6,0x2ada63f0 <_pthread_cleanup_push_defer+28>
> -    0x2ada63d8    <_pthread_cleanup_push_defer+4>:        rsub r6,pc

Putting GOT pointer in r6.

> -    0x2ada63da    <_pthread_cleanup_push_defer+6>:        mov r8,18
> -    0x2ada63de    <_pthread_cleanup_push_defer+10>:        ld.w r8,r6[r8<<0x2]

Fetch a pointer from the GOT with offset 0x48 (18 << 0x02).

> -    0x2ada63e2    <_pthread_cleanup_push_defer+14>:        ld.w r8,r8[172]

Then load something from an offset from the loaded pointer, accessing a
struct perhaps? Does not seem like r8 is zero at this point, given your
register dump below.

> -    0x2ada63e6    <_pthread_cleanup_push_defer+18>:        cp.w r8,0

Compare it to zero, function pointer?

> -    0x2ada63e8    <_pthread_cleanup_push_defer+20>:        breq 0x2ada63ec <_pthread_cleanup_push_defer+24>
> -    0x2ada63ea    <_pthread_cleanup_push_defer+22>:        icall r8

Jump to the fetched function(?).

> -    0x2ada63ec    <_pthread_cleanup_push_defer+24>:        popm r4-r7,pc

Return

> -    0x2ada63ee    <_pthread_cleanup_push_defer+26>:        add r0,r0

Alignment of local function data.

> -    0x2ada63f0    <_pthread_cleanup_push_defer+28>:        *unknown*
> -    0x2ada63f2    <_pthread_cleanup_push_defer+30>:        breq 0x2ada6482 <__libc_pthread_init+38>
>

Address of the GOT pointer.

Do not really see anything immediate wrong with this code.

> Register contents:
> r0    {0x0}
> r1    {0x2adddffc}
> r2    {0x2adde000}
> r3    {0x2adddff8}
> r4    {0x7fc6b688}
> r5    {0x0}
> r6    {0x2ada9f58}
> r7    {0x2add82e0}
> r8    {0x2ada63d4}
> r9    {0x0}
> r10    {0x2adab600}
> r11    {0x2ada6338}
> r12    {0x7fc6b64c}
> sp    {0x7fa6e010}
> lr    {0x2ada63ec}
> pc    {0x2ada63d4}
>

--
With kind regards,
Hans-Christian Egtvedt, Applications Engineer

_______________________________________________
buildroot mailing list
buildroot@...
http://busybox.net/mailman/listinfo/buildroot

Re: Debugging VICE emulator for AVR32

by Peter Korsgaard-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>>>>> "John" == John Voltz <john.voltz@...> writes:

 John> Hi,

 John> For some time now, I have been trying to debug the VICE
 John> emulator in buildroot.  There seems to be a problem with uClibc
 John> 0.9.29. VICE will not start on x86 or on AVR32, but it would
 John> run in the past on uClibc 0.9.28. In fact, the old binary of
 John> VICE that I built for 0.9.28 will run with 0.9.29. I find that
 John> strange. I'm hoping someone can help me make sense of the gdb
 John> info. Here is where the segfault occurs immediately after
 John> starting VICE on AVR32:

I've also noticed pthread problems with avahi on uclibc 0.9.29 (on
PPC), but I haven't had time to debug it yet. The same setup works
with 0.9.28.3.

--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@...
http://busybox.net/mailman/listinfo/buildroot

Re: Debugging VICE emulator for AVR32

by mpfj :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Peter Korsgaard wrote:
> I've also noticed pthread problems with avahi on uclibc 0.9.29 (on
> PPC), but I haven't had time to debug it yet. The same setup works
> with 0.9.28.3
Hi Peter,

I'm also having problems with avahi-daemon segfaulting (on the NGW100
defconfig plus avahi).

I raised a ticket on avahi.org (http://avahi.org/ticket/224), and after
a bit of novice gdb investgations have shown up a "pthread" function may
well be the cause.

In case of a post 0.9.29 bug fix, I did try to use the uclibc daily
snapshot, but it didn't compile at all.

Did you manage to get anywhere with this, or is it still outstanding ?

Regards
Mark

[mpfj.vcf]

begin:vcard
fn:Mark Jackson
n:Jackson;Mark
org:Mercury IMC Ltd
adr:Derwent Road;;George House;Malton;North Yorkshire;YO17 6YB;UK
email;internet:mpfj@...
tel;work:01653 697 200
tel;fax:08700 667 325
tel;cell:07834 456 394
x-mozilla-html:TRUE
url:www.mimc.co.uk
version:2.1
end:vcard



_______________________________________________
buildroot mailing list
buildroot@...
http://busybox.net/mailman/listinfo/buildroot

Re: Debugging VICE emulator for AVR32

by John Voltz-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

My problem was that VICE wasn't being linked against libpthread. Simply adding a LDFLAGS="-lpthread" to the configure statement fixed it.

John


On Tue, Jul 22, 2008 at 3:31 PM, Mark Jackson <mpfj@...> wrote:
Peter Korsgaard wrote:
I've also noticed pthread problems with avahi on uclibc 0.9.29 (on
PPC), but I haven't had time to debug it yet. The same setup works
with 0.9.28.3
Hi Peter,

I'm also having problems with avahi-daemon segfaulting (on the NGW100 defconfig plus avahi).

I raised a ticket on avahi.org (http://avahi.org/ticket/224), and after a bit of novice gdb investgations have shown up a "pthread" function may well be the cause.

In case of a post 0.9.29 bug fix, I did try to use the uclibc daily snapshot, but it didn't compile at all.

Did you manage to get anywhere with this, or is it still outstanding ?

Regards
Mark


_______________________________________________
buildroot mailing list
buildroot@...
http://busybox.net/mailman/listinfo/buildroot