Commit Graph

11097 Commits

Author SHA1 Message Date
Bartosz Taudul
e33ccfda76 Share a single manual data instance across views.
The manual data is invariant — derived only from the embedded manual — so
each View re-parsed it needlessly. It's now computed once and shared by all
Views and the LLM.
2026-10-07 21:18:08 +02:00
Bartosz Taudul
bae66a2ad9 Add labels to the achievement admonitions. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
f16dacc1de Capitalize the About window name in the global settings text. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
66e934fc17 Note trace version compatibility in the load trace text. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
3789cf85df Match the Save trace button label with its ellipsis. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
06df3c85d1 Clarify the Tracy library integration step. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
58852328f7 Lowercase the generic achievement terms in the intro text. 2026-10-07 21:18:08 +02:00
Bartosz Taudul
7e2cf84da4 Restructure the Find zone achievement text. 2026-10-07 21:18:07 +02:00
Bartosz Taudul
54cd242b49 Fix Instrumentating typo in instrumentation achievement name. 2026-10-07 21:18:07 +02:00
Bartosz Taudul
ba4a19bb45 Only record achievements when the feature is enabled.
The intro and global-settings achievements recorded state even while
achievements were disabled, so the intro toast could be consumed before the
user ever enabled the feature — and then never appear when they later opted
in. The intro now fires at the enable points, so it shows the first time the
feature is enabled.
2026-10-07 21:18:07 +02:00
Bartosz Taudul
c4683bdf38 Fix achievement unlock propagation.
Achieve() now propagates a category unlock to the category's remaining
items, matching the constructor's load-time behavior. This lets an
achievement complete in the session where its category first unlocks.
2026-10-07 21:18:05 +02:00
Bartosz Taudul
23755c9fc8 Merge pull request #1478 from jonathanharg/master
Various improvements for Apple platforms
2026-10-04 01:27:11 +02:00
Bartosz Taudul
14038eef44 Merge pull request #1479 from develOseven/c-api-sections
Add C API for Sections
2026-10-04 00:50:53 +02:00
Jonathan Hargreaves
f977c27ab7 Emit pthread ids for sampled callstacks on Apple platforms
Previously mach thread ids were emitted, which wouldn't match those
recorded in instrumented zones.
2026-10-03 23:11:17 +01:00
Jonathan Hargreaves
41bb4f58b4 Automatic thread naming on Apple 2026-10-03 23:11:05 +01:00
develOseven
fbf3a3d738 Add C API for Sections 2026-10-03 23:22:20 +02:00
Jonathan Hargreaves
275b578c1b Improve Apple platform details
- Include OS version
- Add CPU details
- Correct username
2026-10-02 22:01:25 +01:00
Bartosz Taudul
f55c69603f Update NEWS. 2026-10-01 11:21:28 +02:00
Bartosz Taudul
b1fef9f334 Merge pull request #1477 from thejvfdev/feature/standardize-macro-semicolon-usage
Standardize macro semicolon usage
2026-10-01 02:11:18 +02:00
jvf.dev
3d861a4bff Wrap if-based helpers in do-while and remove trailing semicolons 2026-09-30 21:00:07 +01:00
jvf.dev
3bd767a6e9 Remove semicolons from previously missed macros 2026-09-30 20:55:00 +01:00
jvf.dev
39484791f2 Standardize macro semicolon usage
Remove semicolons from public macros
2026-09-30 02:50:54 +01:00
Bartosz Taudul
6dae06535c Nicer README. 2026-09-29 23:05:33 +02:00
Bartosz Taudul
713f1deaa0 Document file descriptor usage of Linux system tracing. 2026-09-27 22:39:19 +02:00
Bartosz Taudul
90a5072650 Merge pull request #1476 from alandtse/feat/mcp-better-error-detection
feat(mcp): surface why a live_connect stalled
2026-09-27 11:59:12 +02:00
Alan Tse
45d6ac9e60 feat(mcp): surface why a live_connect stalled
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MbSf1XDruoDorpHFzEjqKX
2026-09-27 02:07:17 -07:00
Bartosz Taudul
a8db9bd844 Bump nfd-extended to 1.4.0. 2026-09-26 18:49:20 +02:00
Bartosz Taudul
0913edf7be Update NEWS. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
9c43ad241f Document lock deadlock detection. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
7d8c7caea7 Label deadlocked threads in thread lists and trace information. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
7a8e9bb727 Mark deadlocked threads and locks on the timeline. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
7a975bea44 Show a deadlock notification with cycle details. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
ae32c0fff8 Share the lock display name resolution. 2026-09-24 22:21:53 +02:00
Bartosz Taudul
eee89de2d9 Track deadlocks in the worker from the lock event state.
The live per-frame scan visits only the set of locks with nonzero wait
counts, updated at each lock event: every wait-for edge originates at a
waiter, so uncontented locks cannot contribute anything. File loads replay
events without touching the set and are covered by the one-shot full-map
scan at end of load.
2026-09-24 22:21:52 +02:00
Bartosz Taudul
5808e7ed1a Add unit tests for lock deadlock detection. 2026-09-24 22:21:52 +02:00
Bartosz Taudul
092bfcc2a0 Add deadlock cycle detection to the lock event engine.
The scan consumes the final Waiting/SharedHolding flags of each lock
map: a thread blocked in a lock acquisition emits no Obtain and no other
event, so an unclosed wait at the last known state is a permanent wait
per the event contract. A failed try_lock never emits a wait, so it
cannot fabricate an edge. Locks recorded by clients with inverted
release ordering are skipped entirely, as their holder attribution is
ambiguous.

A thread that holds a shared lock and waits for exclusive cannot
progress while its own shared hold persists; this is reported as a
size-1 cycle.
2026-09-24 22:21:50 +02:00
Bartosz Taudul
81c5005509 Bump capstone to 6.0.0-Alpha11. 2026-09-21 21:25:24 +02:00
Bartosz Taudul
d92cc589d6 Fix TracyCSharedLockAnnounce macro name in disabled builds. 2026-09-21 18:14:12 +02:00
Bartosz Taudul
fe86d1ac8f Keep threads that participate only in locks visible in the timeline. 2026-09-21 18:14:12 +02:00
Bartosz Taudul
e88b8680d7 Report lock statistics from the engine in python bindings. 2026-09-21 18:14:12 +02:00
Bartosz Taudul
aa54183ea0 Draw lock timelines from engine segments.
The differences against the previous renderer are deliberate: the
drawn state is canonical from event 0, HasBlockingLock clears when the
blockers drain, same-state neighbors merge, a waiting thread shows as
holding only on its true acquire, a shared holder waiting for exclusive
draws as blocking, the Blocked and Sharing lists contain only genuinely
blocked roles, and the tooltip holder count follows the cursor position
in the holder-change log.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
b81fe9db72 Rewrite server-side lock tracking as an append-only event engine.
Capture has serialized lock events since d6f32a083 and 3e3aa80fa, so
the out-of-order reconstruction machinery has nothing left to repair.
Mark now targets the recorded Wait/Obtain event index; the old reverse
scan could walk off the start of the timeline for a thread that never
waited.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
13b8e6e15c Fail the capture when a lock exceeds its 64-thread slot table.
InsertLockEvent wraps the uint8 slot index past the 64-entry
per-lock table, misattributing the 65th distinct thread to slot
0. Set the failure instead.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
b14dad2c42 Lock release event must happen before the actual release.
With unlock -> notify order the thread can be preempted by other thread,
for example one that wants to lock the very same lock. This would produce
incorrect ordering of lock release and acquire events.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
3ed0a42214 Store lock events with a 16-bit thread slot. 2026-09-21 18:14:09 +02:00
Bartosz Taudul
dd29819f3d Merge pull request #1472 from alandtse/fix/emscripten-deploy-fork-guard
ci(emscripten): skip SFTP deploy on forks
2026-09-15 13:04:37 +02:00
Alan Tse
2ba0e21c97 ci(emscripten): skip SFTP deploy on forks
The deploy job SFTPs the emscripten build using repo secrets
(SERVER/USERNAME/PRIVATE_KEY/REMOTE_PATH) that only exist upstream.
On a fork these are empty, so every push to a fork's master fails
with "remote_path is empty" even though the actual build succeeded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVBiYgtsB6okBueTwp5swa
2026-09-15 02:38:43 -07:00
Bartosz Taudul
a6d16f5515 Move LockHighlight to the timeline draw header. 2026-09-14 21:02:00 +02:00
Bartosz Taudul
e58f4819ba Merge pull request #1470 from wolfpld/slomp/webgpu-capacity
Increased the max query limit of TracyWebGPU.hpp
2026-09-14 19:33:05 +02:00
Marcos Slomp
841fae2371 code review: formating consistency 2026-09-14 10:16:24 -07:00