Hi All, Target-linux-nat.c is the file for supporting native gdb? for instance, I want to build a native gdb for MicroBlaze. '--host=microblazeel-xilinx-linux-gnu' '--target=microblazeel-xilinx-linux-gnu' 1. what are steps for building native gdb which are specific to configure and flags. 2. what files needs to be ported? and is there any guide for porting native gdb ? Thanks, Mahesh B
On 2022-04-18 02:07, Mahesh Bodapati via Gdb wrote: > Hi All, > Target-linux-nat.c is the file for supporting native gdb? > for instance, I want to build a native gdb for MicroBlaze. > > '--host=microblazeel-xilinx-linux-gnu' > '--target=microblazeel-xilinx-linux-gnu' > > > 1. what are steps for building native gdb which are specific to > configure and flags. I'm not 100% sure I understand your question, but I assume you want to cross-compile GDB on an x86-64 build machine, so that GDB runs and debugs natively on a Microblaze Linux system. At the simplest, it will be something like: .../configure --host=microblazeel-xilinx-linu-gnu --sysroot=<path to sysroot> make But you will probably hit more problems that are typical of cross-compilation (not specific to GDB), like making sure you have all GDB dependencies built for Microblaze and installed in your sysroot. > 2. what files needs to be ported? and is there any guide for porting > native gdb ? GDB already supports Microblaze, see files gdb/microblaze* in the tree. However, we didn't have contributions that touched those files for a while, so it's possible these have bitrotted a little bit. Simon
Thanks Simon, >I'm not 100% sure I understand your question, but I assume you want to >cross-compile GDB on an x86-64 build machine, so that GDB runs and >debugs natively on a Microblaze Linux system. build != host == target (“cross-native”) native toolchain, as it targets the same machine as it runs on. But it is build on another machine. >GDB already supports Microblaze, see files gdb/microblaze* in the tree. >However, we didn't have contributions that touched those files for a >while, so it's possible these have bitrotted a little bit. I didn't see any issues while I compile cross-compile gdb which runs on x86 and I assume 'microblaze-linux-nat.c' has to be ported/added as similar to other target to make it run on a target natively and also files to be ported for MicroBlaze at " gdb/nat/" Am I correct here? Please help me understand in detail. On Mon, Apr 18, 2022 at 7:16 PM Simon Marchi <simon.marchi@polymtl.ca> wrote: > > > On 2022-04-18 02:07, Mahesh Bodapati via Gdb wrote: > > Hi All, > > Target-linux-nat.c is the file for supporting native gdb? > > for instance, I want to build a native gdb for MicroBlaze. > > > > '--host=microblazeel-xilinx-linux-gnu' > > '--target=microblazeel-xilinx-linux-gnu' > > > > > > 1. what are steps for building native gdb which are specific to > > configure and flags. > > I'm not 100% sure I understand your question, but I assume you want to > cross-compile GDB on an x86-64 build machine, so that GDB runs and > debugs natively on a Microblaze Linux system. > > At the simplest, it will be something like: > > .../configure --host=microblazeel-xilinx-linu-gnu --sysroot=<path to > sysroot> > make > > But you will probably hit more problems that are typical of > cross-compilation (not specific to GDB), like making sure you have all > GDB dependencies built for Microblaze and installed in your sysroot. > > > 2. what files needs to be ported? and is there any guide for porting > > native gdb ? > > GDB already supports Microblaze, see files gdb/microblaze* in the tree. > However, we didn't have contributions that touched those files for a > while, so it's possible these have bitrotted a little bit. > > Simon >
On 2022-04-19 02:31, Mahesh Bodapati wrote:
> Thanks Simon,
>>I'm not 100% sure I understand your question, but I assume you want to
>>cross-compile GDB on an x86-64 build machine, so that GDB runs and
>>debugs natively on a Microblaze Linux system.
>
> build != host == target (“cross-native”)
>
> native toolchain, as it targets the same machine as it runs on. But it is build on another machine.
>
>
>>GDB already supports Microblaze, see files gdb/microblaze* in the tree.
>>However, we didn't have contributions that touched those files for a
>>while, so it's possible these have bitrotted a little bit.
>
> I didn't see any issues while I compile cross-compile gdb which runs on x86 and I assume 'microblaze-linux-nat.c' has to be ported/added as similar to other target to make it run on a target natively and also files to be ported for MicroBlaze at " gdb/nat/"
Ah, you're right, the existing files are only -tdep files, so there's no
native debugging support for Microblaze.
So, yeah, you would need to add a microblaze-linux-nat.c, edit
configure.nat to add an entry for Microblaze/Linux.
microblaze-linux-nat.c would contain a class definition like
class microblaze_linux_nat_target final : public linux_nat_target
{
...
}
and a static instance like:
static microblaze_linux_nat_target the_microblaze_linux_nat_target;
Then, I would suggest looking at another "simple" architecture, like
riscv-linux-nat.c, for inspiration. That architecture only defines some
fetch_registers and store_registers methods, plus read_description.
That's probably about the minimal things you need to get something
working.
Simon