paolosev marked 10 inline comments as done.
paolosev added a comment.

In D71575#1793791 <https://reviews.llvm.org/D71575#1793791>, @labath wrote:

> A bunch more comments from me. :)
>
> A higher level question I have is whether there's something suitable within 
> llvm for parsing wasm object files that could be reused. I know this can be 
> tricky with files loaded from memory etc., so it's fine if it isn't possible 
> to do that, but I am wondering if you have considered this option.


I have considered this option, there is indeed some code duplication because 
there is already a Wasm parser in class WasmObjectFile 
(llvm/include/llvm/Object/Wasm.h).
However class WasmObjectFile is initialized with a memory buffer that contains 
the whole module, and this is not ideal. LLDB might create an ObjectFileWasm 
either from a file or by retrieving specific module chunks from a remote, but 
it doesn't often need to load the whole module in memory.
I think this is the reason why other kind of object files (like ObjectfileELF) 
are re-implemented in LLDB rather than reusing existing code in LLVM (like 
ELFFile in llvm/include/llvm/Object/ELF.h).



================
Comment at: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp:40
+
+  const uint32_t *version = reinterpret_cast<const uint32_t *>(
+      data_sp->GetBytes() + sizeof(llvm::wasm::WasmMagic));
----------------
labath wrote:
> labath wrote:
> > This looks like it will cause problems on big endian hosts..
> One way to get around that would be to use something like 
> `llvm::support::read32le`.
Good point, modified to use read32le.


================
Comment at: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp:252
+
+  ModuleSpec spec(file, ArchSpec("wasm32-unknown-unknown-wasm"));
+  specs.Append(spec);
----------------
labath wrote:
> I take it that wasm files don't have anything like a build id, uuid or 
> something similar?
Not yet. There is a proposal to add a uuid to wasm modules in a custom section, 
but it's not part of the standard yet.


================
Comment at: lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h:116
+
+  typedef struct section_info {
+    lldb::offset_t offset;
----------------
labath wrote:
> We don't use this typedef style (except possibly in some old code which we 
> shouldn't emulate).
Yes, this was copied from old code :). Removed. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71575/new/

https://reviews.llvm.org/D71575



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to