mirror of
https://github.com/gperftools/gperftools
synced 2024-12-21 06:50:03 +00:00
e78238d94d
In most practical terms, this expands "official" heap leak checker support to Linux/arm64 and Linux/riscv (mips-en and legacy arm are likely to work & pass tests too now). The code is now explicitly Linux-only, without trying to pretend otherwise. Main goal of this change is to finally amputate linux_syscall_support.h, which we historically had trouble maintaining well. Biggest challenge was around thread listing facility which uses clone (ptrace explicitly fails between threads) and that causes difficulties around parent and child tasks sharing errno. linux_syscall_support stuff had special feature to "redirect" errno accesses. But it caused us for more trouble. We switched to regular syscalls, and errno stamping avoidance is now simply via careful programming. A number of other cleanups is made (such us thread finding codes in procfs which clearly was built for some ages old and odd kernels). sem_post/sem_wait synchronization was previously potentially prone to deadlock (if parent died at bad time). We now use pipe pair for this synchronization and it is fully robust. |
||
---|---|---|
.. | ||
cpuprofile-fileformat.html | ||
cpuprofile.html | ||
designstyle.css | ||
heap_checker.html | ||
heap-example1.png | ||
heapprofile.html | ||
index.html | ||
overview.dot | ||
overview.gif | ||
pageheap.dot | ||
pageheap.gif | ||
pprof_remote_servers.html | ||
pprof-test-big.gif | ||
pprof-test.gif | ||
pprof-vsnprintf-big.gif | ||
pprof-vsnprintf.gif | ||
pprof.1 | ||
pprof.see_also | ||
spanmap.dot | ||
spanmap.gif | ||
t-test1.times.txt | ||
tcmalloc-opspercpusec.vs.threads.64.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.128.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.256.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.512.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.1024.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.2048.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.4096.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.8192.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.16384.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.32768.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.65536.bytes.png | ||
tcmalloc-opspercpusec.vs.threads.131072.bytes.png | ||
tcmalloc-opspersec.vs.size.1.threads.png | ||
tcmalloc-opspersec.vs.size.2.threads.png | ||
tcmalloc-opspersec.vs.size.3.threads.png | ||
tcmalloc-opspersec.vs.size.4.threads.png | ||
tcmalloc-opspersec.vs.size.5.threads.png | ||
tcmalloc-opspersec.vs.size.8.threads.png | ||
tcmalloc-opspersec.vs.size.12.threads.png | ||
tcmalloc-opspersec.vs.size.16.threads.png | ||
tcmalloc-opspersec.vs.size.20.threads.png | ||
tcmalloc.html | ||
threadheap.dot | ||
threadheap.gif |