Re: jit interface and jit reader

Tony Simpson <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAKJTP-QQ5MTzQnZeQze3XcDNoKY4kGRPnSpKMu5VgZ_fuQ7=+A@mail.gmail.com>
Hi Frank,

I think I ran into the same problem a couple of years ago. I fixed my
problem here
https://github.com/tonysimpson/binutils-gdb/commits/jit-interface-fixes.

I've forgotten the details but I remember I got it working with my patch -
here is the commit message for 3c0e5d45f727d5ef98b681103954820c8fbbd700
Fixes:
  * Named blocks not appearing as functions - can't break on functions;
  * Pending breakpoints on JIT'd code not being resolved;
  * GDB goes into an infinit loop with more than one JIT block in a
     symtab;
  * Unwinder function not being called.

Hope this helps. Best Regards,

Tony

On Mon, 21 Jan 2019 at 13:53, Frank Tetzel <[email protected]>
wrote:

> > I have trouble getting GDB's jit interface to work. I'm trying to make
> > application using AsmJit [1] easier to debug by being able to break
> > when entering jitted code. As AsmJit is just an assembler returning a
> > function pointer to the generated code, I do not want to create an
> > object file for it. That is why I'm trying to use jit-reader, but the
> > symbol does not seem to show up in GDB and a pending breakpoint is
> > never hit.
> >
> > What am I doing wrong? I attached two files: gdbjit.cpp is talking to
> > GDB via the jit interface. gdbjit-reader.c is the jit reader for GDB
> > which I compile to a shared object and load in GDB with
> > jit-reader-load.
> >
> > It does not implement unwind and get_frame_id. Do I need these
> > functions? unwind is called sometimes. Is there a minimal example
> > somewhere which implements jit reader?
> >
> > [1] https://github.com/asmjit/asmjit
>
>
> I looked at GDB's source code a bit and found a minimal example in
> testsuite/gdb.base/jit{host.c,reader.c}.
>
> The problem is also visible there: I can follow the indirect call into
> the generated code. In TUI-mode, the instructions belonging to the
> function have the correct symbol+offset. backtrace shows the function
> name as well.
>
> But, I cannot set a breakpoint with the function name. Nor can I use
> the command disassemble, only the disassemble view in TUI works.
>
> How can I register the address range as a proper function?
>
> Best regards,
> Frank
>
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.