jankratochvil added a comment.
I do not like much this approach but it fixes this case. I would prefer
checking `DW_AT_producer` together with `-grecord-gcc-switches`.
I was trying GCC and clang and all the IMO relevant options and I can get
either no `.eh_frame`/`.debug_frame` or an asynchronous one.:
(set -ex;rm -rf udir;mkdir udir;cd udir;rm -f *;for e in
-f{,no-}exceptions;do for u in -f{,no-}asynchronous-unwind-tables;do for a in
-f{,no-}unwind-tables;do for c in clang gcc;do echo 'int main(void){return
0;}'|$c $e $a $u -o $c$e$u$a -x c -;done;done;done;done;for i in $(sha256sum
*|sort|awk '{x[$1]=$2}END{for (y in x) print x[y]}');do nm $i|grep -w
main;readelf -wf $i;done) 2>&1|less
So I think current compilers no longer produce non-asynchronous unwind tables
(that should be verified in the gcc+clang code which I did not) and a simple
compiler version check in `DW_AT_producer` would be enough (even without
checking compilation options).
================
Comment at: lldb/test/Shell/Unwind/eh-frame-augment-noop.test:20
+# CHECK: eh_frame augmented UnwindPlan:
+# CHECK: row[0]: 0: CFA=rsp +8 => rip=[CFA-8]
+# CHECK-NEXT: row[1]: 1: CFA=rsp+16 => rip=[CFA-8]
----------------
trailing whitespace. (5x)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82378/new/
https://reviews.llvm.org/D82378
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits