Closed bhaible closed 2 months ago
The intent is that you should not have to run dsymutil. Something is wrong. However, I don't have access to a MacOS system myself to debug this.
Something is wrong.
Maybe it's related to the test suite failures that I see on macOS 12? I've now reported them at https://github.com/ianlancetaylor/libbacktrace/issues/123 .
The intent is that you should not have to run dsymutil.
Oh, you mean, libbacktrace is supposed to look at the file names stored in the executable (nm -pa a.out | grep OSO
) and read the debugging information found in these files? This approach would only suffice in 1 out of 3 cases.
There are 3 cases:
.o
and .a
files are still in the build tree, at their original locations..o
and .a
files have been moved or deleted.In case a), dsymutil
is not needed, if libbacktrace reads the debugging information from each of the .o files.
In case b) and c), dsymutil
is needed. Therefore, for these cases, it is worth to improve the error message.
In case c) the user needs also to install the executable.dSYM directory; I hope they will understand this when they know about dsymutil
.
Related: GCC bug 97082 and GCC bug 105590
Thanks, I improved the error messages slightly.
Thank you. I appreciate it.
The error message
gives no clue as to how to fix this issue.
Please change the message to
Rationale: I used libbacktrace in a project with Automake, and it produced this error message. I then spent several hours:
How to reproduce: foo.c.gz
It works in one step:
But it doesn't work in two steps, until a
dsymutil
invocation has been performed:References:
If the error message had given me a hint to the missing
dsymutil
invocation, it would have saved me a lot of time.