1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
Commit Graph

6940 Commits

Author SHA1 Message Date
Bartosz Taudul 3d9d242153 Fix test application flags. 2022-08-16 14:12:22 +02:00
Bartosz Taudul 72ad40698b Move initialization of callstack structs to a thread.
Initializing structures for callstack processing (building memory map of the
process, gathering kernel symbols, etc) takes some time, which in some cases
may be significant.

Callstack queries are now handled on a separate thread. In such setup it no
longer makes sense to block main thread execution with this lengthy init
process.

All the heavy initialization phase has been now moved to this separate
processing thread. Some initial callstack queries may now not produce
responses as promptly as before, but this is only because the main thread is
able to start working earlier.

Some parts of the initialization process may be critical to do in the main
thread, for example because the function responsible for gathering callstacks
must be loaded first. This is done still on the main thread, in a new function
InitCallstackCritical().
2022-08-16 13:55:46 +02:00
Bartosz Taudul d9d31e4d51 Make fixed font more compact.
Note that the negative glyph spacing is const here, regardless of the font
scaling. The alternative of using proportional spacing in reality does not
work as good as it sounds. With fractional scaling some of the glyphs will
no longer land on exact pixel boundaries, which results in blurry text.

Looking at the potential solutions for this problem is moot point, as with
the non-fractional scale of 2x and glyph spacing of -2, there is no longer
enough space separating some letters, which is especially visible in words
like "common" or register "xmm", where the "mm" pair becomes joined.
2022-08-16 13:16:21 +02:00
Bartosz Taudul 26e7d6eb3e Update manual. 2022-08-16 00:17:59 +02:00
Bartosz Taudul cde56ef9fe Update NEWS. 2022-08-15 23:33:27 +02:00
Bartosz Taudul 6659e9967a Fix alignment of inline function warning triangle. 2022-08-15 23:04:56 +02:00
Bartosz Taudul c6ad1c4969 Print file name in source view with big font. 2022-08-15 23:01:40 +02:00
Bartosz Taudul f39efbaa07 Normalize child call names in symbol view. 2022-08-15 22:58:35 +02:00
Bartosz Taudul 00e0187506 Print symbol name in symbol view with big font. 2022-08-15 22:53:32 +02:00
Bartosz Taudul fa0322f6b4 Push big font to source view. 2022-08-15 22:48:00 +02:00
Bartosz Taudul d3cb8ccef2 Normalize jump names in assembly lines. 2022-08-15 22:44:31 +02:00
Bartosz Taudul 04aebb090b Normalize frame names in zone trace. 2022-08-15 22:32:42 +02:00
Bartosz Taudul fd2918eaf2 Normalize frames in find zone view callstack. 2022-08-15 22:27:36 +02:00
Bartosz Taudul a5998adf83 Normalize function name in assembly line location popup. 2022-08-15 22:16:05 +02:00
Bartosz Taudul 2031c92f7a Add source code tooltip to function selection list. 2022-08-15 22:10:59 +02:00
Bartosz Taudul 163e7fd490 Normalize names in function selection list in symbol view. 2022-08-15 22:06:35 +02:00
Bartosz Taudul b1aca6acf9 Show original name in tooltip in sample parents window. 2022-08-15 21:54:29 +02:00
Bartosz Taudul dc84752fab Normalize symbol view symbol name. 2022-08-15 21:51:11 +02:00
Bartosz Taudul f4524a8453 Show more elements in one-line callstacks. 2022-08-15 21:36:29 +02:00
Bartosz Taudul 697d1f0cad Fully shorten frame names in one-line callstack calls. 2022-08-15 21:33:25 +02:00
Bartosz Taudul baf365c0c3 Normalize frame names in memory callstack tree. 2022-08-15 21:29:21 +02:00
Bartosz Taudul 9c4f257596 Normalize frame names in wait stacks tree. 2022-08-15 21:27:05 +02:00
Bartosz Taudul 4d974da290 Add shorten name accessor. 2022-08-15 21:21:50 +02:00
Bartosz Taudul 257a836dc7 Adjust zone name shortening option names.
"Always full" was kinda ambiguous. It could either mean that the name will be
always full (shortening effectively disabled), or that the shortening will be
performed to the maximum extent (as it was).
2022-08-15 20:47:59 +02:00
Bartosz Taudul c4324873b2 Add tooltips for parent names. 2022-08-15 20:40:49 +02:00
Bartosz Taudul 655bcd40fb Limit sample statistics frame name tooltip to frame name. 2022-08-15 20:39:35 +02:00
Bartosz Taudul 27165d12a6 Normalize frame names in parents frame tree. 2022-08-15 20:09:35 +02:00
Bartosz Taudul 389cf135c0 Normalize frame names in sample parents call stack view. 2022-08-15 20:04:57 +02:00
Bartosz Taudul 6932eb4b79 Shorten frame names in sample statistics view. 2022-08-15 19:56:17 +02:00
Bartosz Taudul 4d0591cf2f Extract normalized name tooltip function. 2022-08-15 19:43:03 +02:00
Bartosz Taudul 63d074c5d8 Fix zone size calculation wrt text fitting.
Previously the zone size calculation hasn't took into account the possibility
of the zone going out of the screen. This is now fixed.
2022-08-15 19:38:40 +02:00
Bartosz Taudul 7f99ee2c13 Shorten frame names in callstack table. 2022-08-15 19:38:39 +02:00
Bartosz Taudul f2001c95a5 Shorten frame names in callstack tooltip. 2022-08-15 17:13:39 +02:00
Bartosz Taudul 112406472a Do not normalize non-ghost zone names.
These do not have unwanted decorations, but may include useful user
annotations (e.g. "Open file (/etc/passwd)"), which we would not want to
remove.
2022-08-15 17:03:45 +02:00
Bartosz Taudul d27cb4a094 Normalize names in ghost zone tooltips. 2022-08-15 16:54:12 +02:00
Bartosz Taudul 57cabc1e09 Support zone name shortening without text/zone sizes. 2022-08-15 16:39:25 +02:00
Bartosz Taudul 8531ef6591 Extract ShortenZoneName() function to a separate file. 2022-08-15 16:34:37 +02:00
Bartosz Taudul 07a1383304 Expose zone name normalization as a separate setting. 2022-08-15 16:24:44 +02:00
Bartosz Taudul 89016454f8 Progressively remove namespaces. 2022-08-15 15:44:13 +02:00
Bartosz Taudul af934f1387 Remove common return value types from function names.
Which types are included is a balance between efficiency and frequency of
occurrence.
2022-08-15 15:38:34 +02:00
Bartosz Taudul fb6f63f06f Remove const qualifier from shortened function names. 2022-08-15 15:22:57 +02:00
Bartosz Taudul 60f82dfd2e Fix off-by-one.
The null terminator was included during the string copy. The destination
pointer points to one-beyond-the-end, and has to be decreased.
2022-08-15 15:12:20 +02:00
Bartosz Taudul 0c6acf3c2e Use string end pointer. 2022-08-15 14:54:23 +02:00
Bartosz Taudul d91321a774 Do not shorten kernel module names. 2022-08-15 14:50:57 +02:00
Bartosz Taudul 47a2512957 Change namespace shortening to zone name shortening.
Namespace shortening was kinda ok for function names produced by MSVC, which
are generally clean looking. However, gcc/clang like to produce function names
which include template arguments, function parameters, return values, etc. In
such cases the old algorithm simply didn't work, because removal of everything
before the last :: could as well happen in midst of function parameters list.
The result was certainly not an usable function name.

With this new approach namespaces are no longer explicitly mentioned and this
functionality is simply called zone name shortening.

The user-selectable options were changed to make the shortening always
enabled, disabled, or to apply as needed. Note that the "as needed" approach
will be dynamic, trying to gradually remove more and more from the name, until
it fits in the requested area.

Current implementation is only the first step into making this work. In this
first step the function parameters are reduced to () and the template
arguments are reduced to <>. This alone greatly improves readability of the
zone names.

The option to reduce namespaces to one letter (i.e. std::tr1::hash would
become s:t:hash) will no longer be present, now or in the future.
2022-08-15 14:19:57 +02:00
Bartosz Taudul c01ad38d46 Start extracting timeline height control logic. 2022-08-15 13:29:45 +02:00
Bartosz Taudul b0ac78dde1 Don't care about std::regex_error value. 2022-08-14 18:20:40 +02:00
Bartosz Taudul df00870a4b InputBuf is no longer than 255 bytes. 2022-08-14 18:20:39 +02:00
Bartosz Taudul d12fa11762 Change magic value enums to constexprs. 2022-08-14 18:16:30 +02:00
Bartosz Taudul 77e39700b1 Proper way to detect mouse hover over timeline. 2022-08-14 17:17:51 +02:00