friss added inline comments.

================
Comment at: lldb/test/Shell/SymbolFile/DWARF/valueobject-pass-by-reg.s:14-40
+# typedef union
+# {
+#   unsigned raw;
+#   struct
+#   {
+#     unsigned a : 8;
+#     unsigned b : 8;
----------------
This gives a much more compact debug info section:
```
typedef union {
  unsigned raw;
  struct {
     unsigned a : 8;
     unsigned b : 8;
     unsigned c : 6;
     unsigned d : 2;
     unsigned e : 6;
     unsigned f : 2;
  };
} U;

// This appears first in the debug info and pulls the type definition in...
static U __attribute__((used)) _type_anchor;
// ... then our useful variable appears last in the debug info and we can
// tweak the assembly without needing to edit a lot of offsets by hand.
static U ug;

extern void f(U);

// Omit debug info for main.
__attribute__((nodebug))
int main() {
  ug.raw = 0x64A40101;
  f(ug);
  f((U)ug.raw);
}
```

You can easily edit out the TEXT section, the line table and the accelerator 
tables and patch the location expression to give you a minimal binary.


================
Comment at: lldb/test/Shell/SymbolFile/DWARF/valueobject-pass-by-reg.s:62-63
+
+       .section        __TEXT,__text,regular,pure_instructions
+       .build_version macos, 10, 15    sdk_version 10, 15, 6
+       .file   1 "/tmp" "weird.c"
----------------
I don't think you need the TEXT segment at all, or at least you can make it 
empty.


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

https://reviews.llvm.org/D85376

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

Reply via email to