Re: Porting GDB to an architecture with a shared memory model

Max Larsson via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAGKMySW0NVC5NGeFi-gaNK+B-YRGEvjUCG4m=jbTYdhdwvNdsA@mail.gmail.com>
Hi Luis,

Thanks for the hints, after testing various cases the objfile_relocate
method is the one,
which can perform the magic as long the symfile_object_file is given in the
current_program_space.

Because I found svr4_relocate_main_executable, which performs a solution
with the mention exec_set_section_address
if no symfile_object_file is present but a exec_bfd().

Now under which circumstances can a exec_bfd(9 be present but
no symfile_object_file?

kind regards

Max



On Mon, Jul 29, 2024 at 9:36 AM Luis Machado <[email protected]> wrote:

> On 7/28/24 18:33, Max Larsson via Gdb wrote:
> > Hi everyone,
> >
> > I porting or better trying to report GDB to the AmigaOS 4 PPC target (elf
> > based).
> > I already succeeded in (re)porting the binutils stuff, but I'm stuck with
> > GDB.
> >
> > I have a working nat, which can create an inferior, set breakpoints,etc..
> > but
> > because the target has a shared memory model, the inferior is not
> accessible
> > at the vma addresses as specified in the elf format. Currently I'm trying
> > to translate
> > the vma addresses used by the gdb core to the physical address where the
> > inferior
> > ist loaded.
> >
> > I found in the source the method "set_gdbarch_has_shared_address_space"
> and
>
> I think the gdbarch_has_shared_address_space gets used to tell gdb to
> reuse the
> address space rather than creating a new one, which is a step in the right
> direction.
>
> > "exec_set_action_address", with which I think I could tell the gdb core
>
> exec_set_section_address I suppose? That seems to get used in some places
> still,
> which is good.
>
> I think objfile_relocate is something that should be used here (maybe
> indirectly through
> some other means), maybe alongside some information about where in memory
> things were
> loaded for your case. But I can't see a way for you to directly influence
> the way is works.
>
> > where the inferior
> > is loaded, so that I don't need to translate the address, but until know
> I
> > wasn't
> > able to use them correctly.
> >
> > So can someone give me a hint how to realize that, or how gdb support
> such
> > a target,
> > or not?
>
> I can tell gdb supports/used to support uclinux, but I'm not sure about the
> state of such support currently.
>
> Maybe set_objfile_default_section_offset, which eventually calls
> objfile_relocate
> could provide hints on how you could change gdb's view of the memory
> positioning.
>
> Also, check gdb/tic6x-linux-tdep.c and how it relocates things through a
> solib
> layer (gdb/solib-dsbt.c I think). For instance,
> dsbt_relocate_main_executable.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.