mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 14:58:30 +00:00
Add C++ demangling to privileged runtime
Cosmo will now print C++ symbols correctly in --ftrace logs and backtraces. Doing this required reducing the memory requirement of the __demangle() function by 3x. This was accomplished using 16-bit indices and 16-bit malloc granularity. That puts a limit on the longest symbol we can successfully decode, which I think would be around 6553 characters long, given a 65536-byte buffer
This commit is contained in:
parent
dcd626edf8
commit
165c6b37e2
13 changed files with 727 additions and 284 deletions
|
@ -8,10 +8,10 @@ void *bsearch_r(const void *, const void *, size_t, size_t,
|
|||
int (*)(const void *, const void *, void *), void *)
|
||||
paramsnonnull((1, 2, 5)) nosideeffect;
|
||||
void djbsort(int32_t *, size_t) libcesque;
|
||||
void qsort3(void *, size_t, size_t, int (*)(const void *, const void *))
|
||||
paramsnonnull();
|
||||
void qsort(void *, size_t, size_t, int (*)(const void *, const void *))
|
||||
paramsnonnull();
|
||||
void qsort3(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *)) libcesque paramsnonnull();
|
||||
void qsort(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *)) libcesque paramsnonnull();
|
||||
void qsort_r(void *, size_t, size_t,
|
||||
int (*)(const void *, const void *, void *), void *)
|
||||
paramsnonnull((1, 4));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue