Re: [PATCH 1/5] Extended-remote exec events

Yao Qi
2015-07-17T11:55:56Z

Don Breazeal <donb@codesourcery.com> writes:

> While the gdbserver case looks like this, unfortunately:
>
> ---------------------------------------------------------------------
> Reading symbols from ./execler64...done.
> (gdb) tar ext localhost:51111
> Remote debugging using localhost:51111
> Reading symbols from target:/lib64/ld-linux-x86-64.so.2...(no debugging
> symbols found)...done.
> 0x00007ffff7dddaf0 in ?? () from target:/lib64/ld-linux-x86-64.so.2
> (gdb) b main
> Breakpoint 1 at 0x4006a4: file execler.c, line 19.
> (gdb) c
> Continuing.
>
> Breakpoint 1, main (argc=1, argv=0x7fffffffe9d8) at execler.c:19
> 19 printf ("starting %s\n", argv[0]);
> (gdb) info reg
> rax 0x7ffff7dd9ea8 140737351884456
> rbx 0x0 0
> rcx 0x0 0
> ---etc---
> (gdb) catch exec
> Catchpoint 2 (exec)
> (gdb) c
> Continuing.
> Thread 5561.5561 is executing new program: /home/dbreazea/junk/execee32
> warning: Selected architecture i386 is not compatible with reported
> target architecture i386:x86-64
> warning: the debug information found in "target:/lib/ld-2.11.1.so" does
> not match "target:/lib/ld-linux.so.2" (CRC mismatch).
>
> Remote 'g' packet reply is too long: 000000000000000000000000000000...
> ---several 'g' packet errors
> (gdb) q
> A debugging session is active.
>
> Inferior 1 [process 5561] will be killed.
>
> Quit anyway? (y or n) y
> warning: Selected architecture i386 is not compatible with reported
> target architecture i386:x86-64
> --------------------------------------------------------------------
>

I thought gdb.multi/multi-arch-exec.exp has already covered the case
above. It fails in my clean GDB build. If it doesn't cover, we need to
improve it or write a new one to cover the case.

> At first glance it looks like in linux_low_filter_event, the execing
> inferior needs to be marked as a 'new_inferior'
> (proc->priv->new_inferior) in order to do the right thing and call
> the_low_target.arch_setup (). That may require some re-ordering of
> things in linux-low.c:linux_low_filter_event, since handle_extended_wait
> and the exec event handling happen after the arch setup.

Yes, this needs some re-ordering...

>
> Do you think the work you are doing will address this, or should I
> continue looking at a fix for the problem above? They seem like they
> are related, but separate issues.

I think my patch series will address this, and I am testing them. In
the mean time, I don't think this multi-arch issue blocks the review to
this patch series. As you said, they are related, but separated issues.

--
Yao (齐尧)