mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-22 06:34:36 +00:00
[doc] Minor documentation updates (#737)
Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu>
This commit is contained in:
parent
0ca5e25c13
commit
0295ef2b3c
@ -96,7 +96,7 @@ This is the technical documentation of the Tracy Profiler. It is meant as a guid
|
|||||||
|
|
||||||
This document assumes that you have basic knowledge of how the Tracy Profiler works, as the concepts which are already described in the user manual won't be covered here.
|
This document assumes that you have basic knowledge of how the Tracy Profiler works, as the concepts which are already described in the user manual won't be covered here.
|
||||||
|
|
||||||
The information found in this documentation is intended to give you only a brief overview of the algorithms and data structures used in the profiler. It may be incomplete, cursory, or even plainly wrong. This is not a requirements specification. As usual, the source code is the ultimate place to gain knowledge and insight. You are expected to do your homework.
|
The information found in this documentation is intended to give you only a brief overview of the algorithms and data structures used in the profiler. It may be obsolete, incomplete, cursory, or even plainly wrong. This is not a requirements specification. As usual, the source code is the ultimate place to gain knowledge and insight. You are expected to do your homework.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
|
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
@ -266,7 +266,7 @@ Call stack collection is initiated by calling the \texttt{Callstack()} procedure
|
|||||||
|
|
||||||
To perform unwinding various OS functions are used: \texttt{RtlWalkFrameChain()}, \texttt{\_Unwind\_Backtrace()}, \texttt{backtrace()}. A list of returned frame pointers is saved in a buffer, which will be later sent to the server. The maximum unwinding depth limit (63 entries) is due to the specifics of the underlying OS functionality.
|
To perform unwinding various OS functions are used: \texttt{RtlWalkFrameChain()}, \texttt{\_Unwind\_Backtrace()}, \texttt{backtrace()}. A list of returned frame pointers is saved in a buffer, which will be later sent to the server. The maximum unwinding depth limit (63 entries) is due to the specifics of the underlying OS functionality.
|
||||||
|
|
||||||
On some platforms you can define \texttt{TRACE\_CLIENT\_LIBUNWIND\_BACKTRACE} to use libunwind to perform callstack captures, as it might be a faster alternative than the default implementation. If you do, you must compile/link you client against libunwind. See \url{https://github.com/libunwind/libunwind} for more details.
|
On some platforms you can define \texttt{TRACY\_LIBUNWIND\_BACKTRACE} to use libunwind to perform callstack captures, as it might be a faster alternative than the default implementation. If you do, you must compile/link you client against libunwind. See \url{https://github.com/libunwind/libunwind} for more details.
|
||||||
|
|
||||||
\subsubsection{Decoding stack frames}
|
\subsubsection{Decoding stack frames}
|
||||||
|
|
||||||
@ -521,8 +521,8 @@ The DXT1 compression used to reduce size of the images is a from-scratch impleme
|
|||||||
|
|
||||||
\subsection{Thread naming}
|
\subsection{Thread naming}
|
||||||
|
|
||||||
Most operating systems don't have adequate support for giving threads arbitrary names. On such systems the \texttt{TRACY\_COLLECT\_THREAD\_NAMES} macro will be defined, which enables storage of thread names in a lock-free list. On subsequent thread name queries this list is used, instead of the system facilities.
|
Most operating systems don't have adequate support for giving threads arbitrary names. Tracy supplements this by providing an alternative way via an internal lock-free list. On subsequent thread name queries this list is used, instead of the system facilities.
|
||||||
|
|
||||||
Even if the lock-free list is used, Tracy will also set the thread name using the OS functionality. These names can be then used by debuggers and other external tools.
|
When `setThreadName()` is called, Tracy will also set the thread name using the OS functionality when possible. These names can be then used by debuggers and other external tools.
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
@ -1758,7 +1758,7 @@ noborder=true,
|
|||||||
couleur=black!5,
|
couleur=black!5,
|
||||||
logo=\bclampe
|
logo=\bclampe
|
||||||
]{libunwind}
|
]{libunwind}
|
||||||
On some platforms you can define \texttt{TRACE\_CLIENT\_LIBUNWIND\_BACKTRACE} to use libunwind to perform callstack captures as it might be a faster alternative than the default implementation. If you do, you must compile/link you client against libunwind. See \url{https://github.com/libunwind/libunwind} for more details.
|
On some platforms you can define \texttt{TRACY\_LIBUNWIND\_BACKTRACE} to use libunwind to perform callstack captures as it might be a faster alternative than the default implementation. If you do, you must compile/link you client against libunwind. See \url{https://github.com/libunwind/libunwind} for more details.
|
||||||
\end{bclogo}
|
\end{bclogo}
|
||||||
|
|
||||||
\subsubsection{Debugging symbols}
|
\subsubsection{Debugging symbols}
|
||||||
@ -1840,17 +1840,17 @@ Inline frames retrieval on Windows can be multiple orders of magnitude slower th
|
|||||||
\paragraph{Offline symbol resolution}
|
\paragraph{Offline symbol resolution}
|
||||||
|
|
||||||
By default, tracy client resolves callstack symbols in a background thread at runtime.
|
By default, tracy client resolves callstack symbols in a background thread at runtime.
|
||||||
This process requires that tracy client load symbols for the shared libraries
|
This process requires that tracy client load symbols for the shared libraries
|
||||||
involved, which requires additial memory allocations, and potential impact runtime performance if a lot of symbol queries are involved.
|
involved, which requires additial memory allocations, and potential impact runtime performance if a lot of symbol queries are involved.
|
||||||
As an alternative to to runtime symbol resolution, we can set the environment variable
|
As an alternative to to runtime symbol resolution, we can set the environment variable
|
||||||
\texttt{TRACY\_SYMBOL\_OFFLINE\_RESOLVE} to 1 and instead have tracy client only resolve
|
\texttt{TRACY\_SYMBOL\_OFFLINE\_RESOLVE} to 1 and instead have tracy client only resolve
|
||||||
the minimal set of info required for offline resolution (a shared library path and an offset into that shared library).
|
the minimal set of info required for offline resolution (a shared library path and an offset into that shared library).
|
||||||
|
|
||||||
The generated tracy capture will have callstack frames symbols showing \texttt{[unresolved]}.
|
The generated tracy capture will have callstack frames symbols showing \texttt{[unresolved]}.
|
||||||
The \texttt{update} tool can be used to load that capture, perform symbol resolution offline
|
The \texttt{update} tool can be used to load that capture, perform symbol resolution offline
|
||||||
(by passing \texttt{-r}) and writing out a new capture with symbols resolved.
|
(by passing \texttt{-r}) and writing out a new capture with symbols resolved.
|
||||||
By default \texttt{update} will use the original shared libraries paths that were recorded
|
By default \texttt{update} will use the original shared libraries paths that were recorded
|
||||||
in the capture (which assumes running in the same machine or a machine with identical
|
in the capture (which assumes running in the same machine or a machine with identical
|
||||||
filesystem setup as the one used to run the tracy instrumented application).
|
filesystem setup as the one used to run the tracy instrumented application).
|
||||||
You can do path substitution with the \texttt{-p} option to perform any number of path
|
You can do path substitution with the \texttt{-p} option to perform any number of path
|
||||||
substitions in order to use symbols located elsewhere.
|
substitions in order to use symbols located elsewhere.
|
||||||
|
Loading…
Reference in New Issue
Block a user