Commit Graph

102 Commits

Author SHA1 Message Date
Clément Grégoire
7437c41514 Escape provided addr2line tool path 2026-06-06 14:47:24 +02:00
Clément Grégoire
7cb98245ce Batch addr2line invocations by command-line length
The fixed batches of 1024 addresses could overflow the platform's command-line limit (`La ligne de commande est trop longue.` from cmd.exe on Windows, whose limit is ~8191 characters). Build each batch by appending addresses until a length budget is reached instead. A single conservative budget of 8000 stays under the smallest limit on every platform, and keeps batches in the same ballpark as before (several hundred addresses per invocation).
2026-06-05 19:10:19 +02:00
Clément Grégoire
55d5436fb9 Add option to reset callstack frame symbols to the unresolved state
The new `-R` option of tracy-update sets every callstack frame back to `[unresolved]` / `[unknown]`. Since failed lookups leave frames untouched and the image-relative offset in `symAddr` survives patching, this makes it possible to chain several resolution passes over the same capture, each with different `-p` path substitutions (e.g. one pass per symbol directory).
2026-06-05 19:03:35 +02:00
Clément Grégoire
2b11785b05 Allow offline symbol resolution with any addr2line-compatible tool
The addr2line backend of tracy-update now builds on every platform, including Windows, and can be pointed at any addr2line-compatible executable:

- `-a`: path to a custom symbol resolution tool (e.g. `llvm-addr2line` or a cross-compilation toolchain's `addr2line`). Works on all platforms and takes precedence over the platform default (DbgHelp on Windows, the `addr2line` found in `PATH` elsewhere). Path-like values are validated up front so a wrong path fails with an actionable message instead of a cryptic, localized shell error.
- `-A`: extra arguments passed verbatim to the tool, e.g. `--relative-address` so `llvm-addr2line`/`llvm-symbolizer` accept the image-relative offsets Tracy records for images with a non-zero preferred base (PE, Mach-O).
- `-v`: verbose output while patching symbols.
2026-06-05 19:03:35 +02:00
Bartosz Taudul
5877db5411 Move NO_ISA_EXTENSIONS option to config.cmake. 2026-03-31 23:15:14 +02:00
Bartosz Taudul
fddbb5d990 Print tracy version in all tools. 2026-03-28 21:38:47 +01:00
Alex Gunnarson
dffa18378b Update IMAGEHLP_LINE to IMAGEHLP_LINE64
OfflineSymbolResolverDbgHelper.cpp uses IMAGEHLP_LINE but
SymGetLineFromAddr64 expects IMAGEHLP_LINE64. On 64-bit Windows these are typedef'd to the same thing, but on 32-bit they're different.
2025-12-17 15:19:00 -07:00
Bartosz Taudul
ea661d0765 Cosmetics. 2025-07-18 00:19:09 +02:00
Oleg Bogdanov
84cbf46cc5 relax regex match in symbolication substitution
See discussion https://github.com/wolfpld/tracy/issues/1075
2025-06-18 18:50:05 -07:00
Oleg Bogdanov
1fa69045a3 Fixing typo in log statement of symbolication 2025-06-18 14:10:15 -07:00
Bartosz Taudul
1a872faae6 Update can't be built without NO_STATISTICS. 2025-06-18 20:00:34 +02:00
Clément Grégoire
f02c6fe4d5 Batch addr2line calls per 1024 addresses and escape paths
addr2line starts failing when given too many addresses to resolve.
Batching per 1024 addresses allows not only to see progress but also fixes resolution for images with high number of addresses to resolve.
Escaping is also required when image paths have spaces for example.
2025-04-14 15:39:26 +02:00
Bartosz Taudul
c5dc5f4455 Bump zstd to 1.5.7, use CPM to download. 2025-02-19 23:47:37 +01:00
Bartosz Taudul
1c1faeff2d Replace parallel STL with PPQSort.
PPQSort is supposedly quite fast: https://github.com/GabTux/PPQSort

More importantly, it does not depend on TBB fuckery, so there's no longer
a need to link with an external library that people may or may not have.

The NO_PARALLEL_STL option is out, as it was provided solely to deal with
TBB being not available. Sequential sorting is still used on emscripten.
2024-09-26 14:41:59 +02:00
Bartosz Taudul
d9fe3ed9a6 Add CMake option to not use parallel STL. 2024-06-08 00:20:12 +02:00
Bartosz Taudul
abf12f79c5 Set the default save config also in tracy-update. 2024-06-02 17:29:21 +02:00
Bartosz Taudul
095df5f416 Expose streams in tracy-update. 2024-06-02 14:32:32 +02:00
Bartosz Taudul
9dea830f98 Move file compression enum out of FileWrite. 2024-05-31 19:24:32 +02:00
Bartosz Taudul
07c6e12dbf Measure load and save time separately in tracy-update. 2024-05-31 17:43:13 +02:00
Bartosz Taudul
a1a7e63d93 Disable assembly in zstd. 2024-04-30 13:44:07 +02:00
Lectem
2530dceac4 CMake: Selecte executable project as startup project for VS 2024-04-14 18:13:51 +02:00
Lectem
a577a86b5c CMake: ASM should be listed last in project() so that it can use the C/C++ compiler executable as assembler
From the project() CMake documentation:
> If enabling ASM, list it last so that CMake can check whether compilers for other languages like C work for assembly too.
2024-04-14 18:13:17 +02:00
Bartosz Taudul
aac38a7deb Update CI.
Co-authored-by: Tom Atkinson <tja.atkinson@gmail.com>
2024-03-22 13:49:08 +01:00
Bartosz Taudul
7f8a2e2c9a Remove old build files. 2024-03-21 23:04:40 +01:00
Bartosz Taudul
1a3131178d Link update with dbghelp. 2024-03-21 23:04:39 +01:00
Bartosz Taudul
148eac2c24 Link with getopt. 2024-03-21 23:04:39 +01:00
Bartosz Taudul
4bfd6f42bc Add CMake build files for the rest of the utilites. 2024-03-21 23:04:39 +01:00
Bartosz Taudul
28636b076b Add missing colon. 2023-12-21 14:38:06 +01:00
Tiago Rodrigues
de6e7d2fc3 move the symbol resolving functionality to the update application instead of creating a new one 2023-11-24 20:48:39 -05:00
Bartosz Taudul
eca841dfe3 Properly call make from within makefiles. 2023-05-23 22:42:53 +02:00
Bartosz Taudul
be392a76fb Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
Bartosz Taudul
06c7984a16 Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00
MACHIZAUD Andréa
84319911c5 Use $(ProjectDir) for vcpkg msbuild without integration paths. 2022-06-18 17:28:56 +02:00
MACHIZAUD Andréa
5e9b007e90 Uses $(VcpkgManifestRoot) for vcpkg msbuild integration paths. 2022-06-18 17:28:56 +02:00
MACHIZAUD Andréa
6aec95e739 Fix vcxproj support without vcpkg integrate install 2022-06-13 22:30:56 +02:00
Bartosz Taudul
411b3137b5 Merge pull request #365 from theblackunknown/msvc+vcpkg-manifest
Using vcpkg manifest for Windows
2022-06-04 16:44:27 +02:00
MACHIZAUD Andréa
fa8bcdfb30 Inject appropriate path for manifest install 2022-06-04 16:26:22 +02:00
Graydon Hoare
0d4a4f6d9b Support TRACY_NO_LTO build flag. 2022-05-19 23:40:27 -07:00
MACHIZAUD Andréa
599098912e Remove superfluous vcxproj setup thanks to vcpkg integration 2022-05-09 10:42:11 +02:00
MACHIZAUD Andréa
3adc55d66d Fix weird path ? 2022-05-09 10:42:11 +02:00
MACHIZAUD Andréa
1fabf9dfa5 Update vcxproj vcpkg path 2022-05-09 10:42:11 +02:00
MACHIZAUD Andréa
adcfe4df35 Add Vcpkg manifest + MSBuild integration 2022-05-09 10:42:10 +02:00
Bartosz Taudul
b10c83f358 Use lld linker, if available. 2022-04-27 02:17:16 +02:00
Bartosz Taudul
2dd61aba49 Makefiles can now build clangd database.
Executing the "make db" will run the build process of the selected tool or
library through the bear wrapper (which has to be available in the system),
which will record the compilation parameters of each source file. This
database can be then used by VS Code to set the proper defines and find all
the required includes.

Note that database building is performed in context of the specific tool or
library. Not all tools have the same set of flags.
2022-04-23 23:46:55 +02:00
Bartosz Taudul
8532c2d1e0 Expose source file scan in update utility. 2022-03-30 16:08:20 +02:00
Bartosz Taudul
8c45ed33fd Bump zstd to 1.5.1. 2021-12-21 12:22:42 +01:00
Bartosz Taudul
aed1360a9c Update to MSVC 2022. 2021-11-13 00:49:26 +01:00
Bartosz Taudul
07bc665d8c Drop support for Cygwin. 2021-10-07 23:28:40 +02:00
Bartosz Taudul
74d0e79b8c Vcpkg changed everything again. 2021-09-21 02:09:54 +02:00
Bartosz Taudul
f8ccd8c40d Move TracyStackFrames to common. 2021-05-23 23:51:56 +02:00