Commit Graph
103 Commits
Author SHA1 Message Date
Bartosz Taudul 69fead1c16 Add CMake presets for the rest of utils. 2026-07-07 01:43:43 +02:00
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 TaudulandTom Atkinson 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