The tests are currently incomplete. There are also still some other things not implemented that are required here.
Details
- Reviewers
- None
- Group Reviewers
Restricted Project
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Nice see this being worked on!
I mainly looked at the code out of curiosity, I didn't do a review.
| libcxx/include/__stacktrace/basic_stacktrace.h | ||
|---|---|---|
| 23 | Since this function is in the dylib it needs an availability macro in <__availability>. | |
| libcxx/src/stacktrace/stacktrace_entry.cpp | ||
| 40 | When line 45 throws the pointer leaks. // Unused; the returned pointer is used to test the conversion status.
int __s;
unique_ptr<char, void (*)(void*)> __demangled{abi::__cxa_demangle(__name, nullptr, 0, &__s), std::free};(I wrote this for a libc++ formatting experiment.) | |
| libcxx/src/stacktrace/stacktrace_entry.cpp | ||
|---|---|---|
| 40 | Thanks, good catch! | |
| libcxx/src/stacktrace/stacktrace_entry.cpp | ||
|---|---|---|
| 36 | I do not know about the libcxx coding style, but LLVM prefers static over functions in anonymous namespaces. I believe there are quite a few functions that you could make static. | |
What prevents this from a merge? I don't think, that you must implement / support all binary formats to merge this. For now, ELF + DWARF should be enough, right?
If that worked it would be a start, but this doesn't. I think we need some external library (maybe something from LLDB) to support a reasonable set of binaries, so I haven't continued working on this.
You could take a look at libbacktrace. The GNU stdlibc++ is using it to generate stacktraces.
Since this function is in the dylib it needs an availability macro in <__availability>.