[Lldb-commits] [PATCH] D61611: [JITLoaderGDB] Set eTypeJIT for objects read from JIT descriptors

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu May 9 08:29:40 PDT 2019

labath added inline comments.

Comment at: lldb/lit/Breakpoint/jitbp_elf.test:1
+# REQUIRES: target-x86_64, system-linux, native
sgraenitz wrote:
> labath wrote:
> > sgraenitz wrote:
> > > labath wrote:
> > > > sgraenitz wrote:
> > > > > The test only works with ELF on Linux. Is the `REQUIRES` sufficient?
> > > > Yes, but what is the reason for that? It looks like the test is generic enough that it should run on any system where lli is able to jit code. In particular I'd expect this to also work on macOS if you set `plugin-jit-loader.gdb.enable` to `on`.
> > > Indeed, since https://reviews.llvm.org/D57689 it does work on macOS with ELF.
> > Cool. I think you can also drop the `target-x86_64` part, as I don't see a reason why this shouldn't work on arm for instance (though we don't have any arm bots around to verify that). I am not sure why you're using the `--target` argument to clang -- I think you should be able to just drop that and make clang generate IR for the host. (the `native` feature ensures that "host" is the default target for clang).
> Without `--target` we emit MachO, which is not implemented on the JIT side and LLDB doesn't even get a JIT descriptor:
> ```
> $ bin/lldb
> (lldb) target create bin/lli
> Current executable set to 'bin/lli' (x86_64).
> (lldb) b getObjectForDebug
> Breakpoint 1: 3 locations.
> (lldb) run -jit-kind=mcjit tools/lldb/lit/Breakpoint/Output/jitbp_elf.test.tmp.ll
> Process 40151 launched: /path/to/llvm-build/bin/lli' (x86_64)
> Process 40151 stopped
> * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3
>     frame #0: 0x0000000100f3ddb3 lli`(anonymous namespace)::LoadedMachOObjectInfo::getObjectForDebug(this=0x0000000105c03540, Obj=0x0000000105c03880) const at RuntimeDyldMachO.cpp:38:12
>    35  	
>    36  	  OwningBinary<ObjectFile>
>    37  	  getObjectForDebug(const ObjectFile &Obj) const override {
> -> 38  	    return OwningBinary<ObjectFile>();
>    39  	  }
>    40  	};
>    41
> ```
Ah, interesting. That's unfortunate, cause that makes running the test on other architectures trickier (but I guess it doesn't matter that much as we'll always have x86 bots around to check that.

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list