Commit Graph

2851 Commits

Author SHA1 Message Date
Bartosz Taudul
f7341141cf Cache zone source location source files. 2020-05-23 15:44:19 +02:00
Bartosz Taudul
97a5957adc Display source file cache stats. 2020-05-23 15:44:19 +02:00
Bartosz Taudul
ae1155852a Source file cache plumbing. 2020-05-23 15:44:18 +02:00
Bartosz Taudul
f38464cf55 Rename SymbolCodeData to MemoryBlock. 2020-05-23 14:54:16 +02:00
Bartosz Taudul
d052e4c79d Substitution-less source file validator. 2020-05-23 14:54:16 +02:00
Bartosz Taudul
fa2559b3f0 Add StringRef hasher, comparator. 2020-05-23 14:54:16 +02:00
Bartosz Taudul
670a292416 Report whether string is available, or if a query was dispatched. 2020-05-23 13:08:57 +02:00
Bartosz Taudul
619523b43e Symbol might not have ip statistics. 2020-05-21 19:20:20 +02:00
Bartosz Taudul
e9c13b254b Get exclusive samples count for a proper symbol.
If inlines are grouped under a base symbol, the base symbol data
includes all the inline sample counts. This was interfering with control
logic determining if sample parents window can be displayed.
2020-05-19 19:10:40 +02:00
Bartosz Taudul
e376866436 Check for exclusive samples in inlined symbols list. 2020-05-19 19:06:01 +02:00
Bartosz Taudul
883264c0df Fix typo. 2020-05-18 18:25:49 +02:00
Bartosz Taudul
f9ff6f4161 Clamping is not needed. 2020-05-15 02:30:52 +02:00
Bartosz Taudul
f6663b187a Add ghost zone label to ghost zone tooltips. 2020-05-15 02:27:48 +02:00
Bartosz Taudul
ad3cac8578 Incorporate thread colors in ghost zones. 2020-05-15 02:25:28 +02:00
Bartosz Taudul
23de7cb294 Improve source file tooltip. 2020-05-15 01:39:14 +02:00
Bartosz Taudul
03c3a3e7c7 Select proper operand for LEA processing in AT&T mode. 2020-05-15 01:37:08 +02:00
Bartosz Taudul
992fba7e07 Move profiler FPS display to upper-right corner. 2020-05-14 17:53:46 +02:00
Bartosz Taudul
ba9b35dc3b Don't memcpy to nullptr. 2020-05-14 17:38:48 +02:00
Bartosz Taudul
c8ff8540f9 Sleep when connection attempt fails. 2020-05-14 02:27:57 +02:00
Bartosz Taudul
7ea9c4baf2 Proper locking for queue/in-flight queries. 2020-05-13 18:52:20 +02:00
Bartosz Taudul
7d57a2ea6d Cast to correct type. 2020-05-13 18:38:40 +02:00
Bartosz Taudul
3f3378e13a Fix typo. 2020-05-13 18:37:37 +02:00
Bartosz Taudul
8e11cd5ebb Add support for custom text in ImportEventTimeline. 2020-05-12 11:44:36 +02:00
Bartosz Taudul
1c8aece53c No saving if there's no file selector. 2020-05-11 22:13:07 +02:00
Bartosz Taudul
e330b96b3d Allow saving only lines within jump range. 2020-05-11 21:59:45 +02:00
Bartosz Taudul
0790e92cad Support saving asm range. 2020-05-11 21:12:43 +02:00
Bartosz Taudul
9d5d116014 Extract asm saving to a separate function. 2020-05-11 21:08:50 +02:00
Dmitry Ivanov
8f509dd41a
Make TracySourceView.cpp build with somewhat old clang
This was the only issue preventing build on macOS High Sierra with whatever version of clang it has.
2020-05-11 16:23:50 +02:00
Bartosz Taudul
dafecf2a19 Allow enumerating asm lines from a given base instruction. 2020-05-11 13:35:49 +02:00
Bartosz Taudul
8a7913c095 Update xxh3 to master @ ea9c098e93. 2020-05-11 02:33:12 +02:00
Bartosz Taudul
e9f93f5bc7 Send lean frame images. 2020-05-10 20:16:08 +02:00
Bartosz Taudul
03b5dfacd6 Send lean callstack samples. 2020-05-10 20:00:51 +02:00
Bartosz Taudul
09388f3c99 Send lean callstack allocs. 2020-05-10 19:56:36 +02:00
Bartosz Taudul
5a774c82cc Send lean callstacks. 2020-05-10 19:43:12 +02:00
Bartosz Taudul
f0ade07be8 Send lean memory callstacks. 2020-05-10 19:28:08 +02:00
Bartosz Taudul
2dc07fca0b Send lean allocated source locations. 2020-05-10 19:20:59 +02:00
Bartosz Taudul
50c66174dd Add ability to show callstack to an asm line. 2020-05-10 16:56:38 +02:00
Bartosz Taudul
2f8e817e16 Make PackPointer() part of worker's interface. 2020-05-10 16:56:13 +02:00
Bartosz Taudul
d84495d0e1 Mark inline symbols. 2020-05-10 16:13:19 +02:00
Bartosz Taudul
fdd50840a7 Add a function for showing sample parents. 2020-05-10 16:07:45 +02:00
Bartosz Taudul
dee808dd1b Display jump labels in the UI. 2020-05-09 15:14:33 +02:00
Bartosz Taudul
2543bb5e63 Shorter jump labels. 2020-05-09 15:14:25 +02:00
Bartosz Taudul
0de39a1d33 Construct location table during disassembly. 2020-05-09 14:58:06 +02:00
Bartosz Taudul
8cbd209ede Display number of selected lines. 2020-05-09 13:53:11 +02:00
Bartosz Taudul
8caf6b02c6 Allow switching between Intel and AT&T assembly syntax. 2020-05-09 12:58:09 +02:00
Bartosz Taudul
ad4387a0c0 Implement saving disassembly to a file. 2020-05-09 02:37:18 +02:00
Bartosz Taudul
8b56dd5468 Prevent division by zero. 2020-05-08 01:55:03 +02:00
Bartosz Taudul
70818b49b9 Force connection popup boolean should decay. 2020-05-08 01:49:15 +02:00
Bartosz Taudul
5b29e65bc5 Initial value of DecayValue might be active. 2020-05-08 01:48:37 +02:00
Bartosz Taudul
2da6c6b6f5 Fix enforced connection popup position wrt viewports. 2020-05-07 15:27:11 +02:00
Bartosz Taudul
2ca6b6f2fe Implement display of grouped instruction pointer statistics. 2020-05-07 02:33:37 +02:00
Bartosz Taudul
15454d2253 Select microarchitecture basing on cpuid. 2020-05-07 00:53:31 +02:00
Bartosz Taudul
eab3adfa1d Display CPU info. 2020-05-06 19:18:17 +02:00
Bartosz Taudul
6fda74e281 Save/load cpu id. 2020-05-06 19:18:17 +02:00
Rokas Kupstys
e40f0c4f2e Fix MinGW build. 2020-05-05 13:23:46 +03:00
ikrima
1b5879e176 ImGui Multiviewport fixes
- set ImGuiConfigFlags_ViewportsEnable
- correct render loop logic with viewport api calls, SetNextWindowViewport(), UpdatePlatformWindows(), RenderPlatformWindowsDefault()
- Fix: coords in abs space now, SetNextWindowPos()

NOTE:
- I have viewports turned on by default so you can easy test (comment out io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; and you get old behavior)
- Jankiness with multiviewports isn't bc perf hit; it's bc profiler reduces it's tick rate when it's not in focus. So, that bit of logic needs to be updated if you really care
- I haven't encountered any issues over past week but discount that by 50% since i'm new to tracy. No promises some UI wasn't regresssed
- Key things to watch out for is enabling viewports turns ImGui into using absolute monitor coords instead of window coords (ie SetPosition(0,0) => monitor top left, not window top/left
2020-05-04 02:17:15 -07:00
Bartosz Taudul
74e55f584c Small toggle button. 2020-05-03 20:49:21 +02:00
Bartosz Taudul
d99129f0e4 Move ToggleButton() out of TracyView.cpp. 2020-05-03 20:40:53 +02:00
Bartosz Taudul
88b2b04b0d Display running threads in CPU usage tooltip. 2020-05-03 14:34:22 +02:00
Bartosz Taudul
fb801fa484 Extract time value at mouse cursor to a variable. 2020-05-03 14:34:05 +02:00
Bartosz Taudul
9d94cdbb52 Parametrize color highlighting. 2020-05-03 14:33:47 +02:00
Bartosz Taudul
3aed0ba150 Unformatted colored text printing with uint32 color. 2020-05-03 14:33:11 +02:00
Bartosz Taudul
b69bf49082 Separate thread context data getter. 2020-05-03 14:21:27 +02:00
Bartosz Taudul
222d3d661e Change "go to frame" window to popup. 2020-05-03 13:54:37 +02:00
Bartosz Taudul
d4e490f47e Keep frames graph at the top of the window (not in dock space). 2020-05-03 13:30:05 +02:00
Bartosz Taudul
bb043f96ee Use internal NoTabBar flag for central node. 2020-05-03 13:29:51 +02:00
Bartosz Taudul
e3acb635a3 Tune up work area window padding. 2020-05-03 13:27:58 +02:00
Bartosz Taudul
32aa23822b Disable docking in central node. 2020-05-03 13:23:48 +02:00
Bartosz Taudul
3350a78cd8 Put work area in center docking node. 2020-05-03 13:23:26 +02:00
Bartosz Taudul
73fda0b188 Disable docking in the main window. 2020-05-03 13:21:34 +02:00
Bartosz Taudul
e7e3d1105c Register usage is only available in capstone 4.x. 2020-05-02 03:09:16 +02:00
Bartosz Taudul
2e75990b6c Fix wrong indent. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
e132849fe2 Don't highlight lines with no dependencies. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
95c9259193 Draw register dependency decorations on scroll bar. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
50a5cce985 Reduce search range. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
0fdb5e6592 Calculate register dependency data. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
93f255e95b Invalidate asm line selection when disassembly is performed. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
654dc2b901 Detect conditional jumps. 2020-05-02 02:34:15 +02:00
Bartosz Taudul
4390aa1015 Print register data in asm lines. 2020-05-01 22:39:54 +02:00
Bartosz Taudul
f4b06ed1fc Register line selection. 2020-05-01 20:35:09 +02:00
Bartosz Taudul
8b2b2f650f Add space for register data in each asm line. 2020-05-01 20:35:09 +02:00
Bartosz Taudul
bb4b08e8cf Don't display operands, if none. 2020-05-01 16:15:33 +02:00
Bartosz Taudul
47b8f052bd Include flags register. 2020-05-01 16:14:27 +02:00
Bartosz Taudul
611bfe49df Display list of read and write registers. 2020-05-01 13:20:19 +02:00
Bartosz Taudul
8014fce6e1 Store list of read and write registers for each asm instruction. 2020-05-01 13:01:47 +02:00
Bartosz Taudul
38116b88a5 Create x86 common register mapping table. 2020-05-01 13:01:47 +02:00
Bartosz Taudul
b74caae685 Handle ending a zone twice. 2020-04-30 19:05:13 +02:00
Bartosz Taudul
a40ba8f4e9 Switch query queue icon to satellite dish. 2020-04-30 18:41:08 +02:00
Bartosz Taudul
035bb2236d Always preserve order of queries. 2020-04-30 02:25:25 +02:00
Bartosz Taudul
8fa0a4dc9e Update mbps data block after terminating connection. 2020-04-29 02:36:38 +02:00
Bartosz Taudul
2175fa6701 Shorten labels. 2020-04-27 19:21:32 +02:00
Bartosz Taudul
83d6566020 Optional visualization of uarch latency. 2020-04-27 19:21:32 +02:00
Bartosz Taudul
d6e633edd0 Fix typo. 2020-04-27 16:10:43 +02:00
Bartosz Taudul
adc60bf394 Separate uarch data retrieval from tooltip display. 2020-04-27 15:31:32 +02:00
Bartosz Taudul
abd00e28b8 Hackish support for LEA variants. 2020-04-27 00:59:49 +02:00
Bartosz Taudul
70605fc8ed Workaround issues with operand width mismatch. 2020-04-27 00:59:49 +02:00
Bartosz Taudul
5da60b53d0 Add micro architecture tooltips. 2020-04-27 00:59:49 +02:00
Bartosz Taudul
800f740fd5 Add micro architecture data. 2020-04-27 00:59:49 +02:00
Bartosz Taudul
f43755625c Add uarch selection UI. 2020-04-26 15:00:40 +02:00
Bartosz Taudul
6266d482ae Be explicit about displaying machine code. 2020-04-26 14:51:58 +02:00
Bartosz Taudul
dba594a857 Store CPU architecture. 2020-04-26 14:23:16 +02:00
Bartosz Taudul
5ae2c415b7 Draw a line indicating zeroth column of source code. 2020-04-25 13:52:21 +02:00
Bartosz Taudul
6b831173e4 Don't display asm counts if no asm available. 2020-04-25 13:51:58 +02:00
Bartosz Taudul
78a56640c3 Open connection popup when a connection is established. 2020-04-25 13:14:27 +02:00
Bartosz Taudul
368caddd00 Separate coloring for types and special values. 2020-04-25 01:01:10 +02:00
Bartosz Taudul
51659ed123 Enable syntax highlighting. 2020-04-25 00:21:15 +02:00
Bartosz Taudul
21506386c4 Allow specification of end address in TextColoredUnformatted. 2020-04-25 00:21:15 +02:00
Bartosz Taudul
3e583b1373 Add C++ tokenizer. 2020-04-25 00:21:15 +02:00
Bartosz Taudul
c87c464f23 Use proper symbol address. 2020-04-24 16:16:53 +02:00
Bartosz Taudul
747f26ef74 Display used CPUs as range, if possible. 2020-04-24 02:02:16 +02:00
Bartosz Taudul
170aeea864 Remove CPU topology tooltip from zone info window. 2020-04-24 01:44:25 +02:00
Bartosz Taudul
9a77a59cb2 Display sample percentage columns only if there's data. 2020-04-24 00:49:38 +02:00
Bartosz Taudul
865593146a Fix skipping symbol code. 2020-04-19 23:34:34 +02:00
Bartosz Taudul
e48095062b Allow displaying machine code bytes in disassembly. 2020-04-19 16:07:24 +02:00
Bartosz Taudul
afb9bdce86 Store instruction lengths. 2020-04-19 16:07:24 +02:00
Bartosz Taudul
421f0895b7 Filter invalid jumps. 2020-04-19 16:07:24 +02:00
Bartosz Taudul
ea00efa857 Display disassembly failure notification. 2020-04-19 16:07:24 +02:00
Bartosz Taudul
b157d4c161 Detect disassembly failures. 2020-04-19 14:40:36 +02:00
Bartosz Taudul
c78e11872c Fix jump arrow mouse hover detection. 2020-04-19 14:28:59 +02:00
Bartosz Taudul
1f3b6d01ab Cosmetics. 2020-04-19 14:10:26 +02:00
Bartosz Taudul
91ad77d86a Save/load source substitutions. 2020-04-18 14:25:04 +02:00
Bartosz Taudul
7a6bc6f554 Substitute source file names in source view. 2020-04-17 19:28:39 +02:00
Bartosz Taudul
01d7fefe52 Perform source file name substitution. 2020-04-17 19:28:39 +02:00
Bartosz Taudul
47cfb4ae35 Expose source substitution interface. 2020-04-17 19:28:39 +02:00
Bartosz Taudul
5f22e35c26 Add UI for source location substitutions. 2020-04-17 19:28:39 +02:00
Bartosz Taudul
b937ad101f Fix handling of ImGui ID stack. 2020-04-17 19:28:39 +02:00
Bartosz Taudul
c79c052528 Display percentage numbers of sample composition times. 2020-04-17 19:28:38 +02:00
Bartosz Taudul
db9557fc84 Use separate texture compression context for saving traces. 2020-04-14 20:07:30 +02:00
Bartosz Taudul
c2dd3913d7 Cleanup context switch data. 2020-04-14 02:34:28 +02:00
Bartosz Taudul
9fc76990e1 Copy proper amount of memory. 2020-04-14 02:22:48 +02:00
Bartosz Taudul
366153a94f No signed left shifts. 2020-04-14 02:22:48 +02:00
Bartosz Taudul
c54dc10464 Cleanup zone children vectors. 2020-04-14 02:22:47 +02:00
Bartosz Taudul
55f582faaf Use correct print format specifier. 2020-04-14 02:22:47 +02:00
Bartosz Taudul
dd0fb49098 Fix typo. 2020-04-14 02:22:47 +02:00
Bartosz Taudul
b0a58d4664 Don't shift left negative values. 2020-04-14 02:22:47 +02:00
Bartosz Taudul
5233f8d4ad Mark source lines which generated assembly. 2020-04-13 17:47:41 +02:00
Bartosz Taudul
2d25e969e9 Fix time span indicators visual jitter. 2020-04-13 15:00:54 +02:00
Bartosz Taudul
a2c4f8c2d1 Prominently expose profiler memory usage. 2020-04-13 14:41:05 +02:00
Bartosz Taudul
b8647f968a Don't animate threads on first frame. 2020-04-12 23:41:18 +02:00
Bartosz Taudul
a074d18dfa Don't display source files, if none available. 2020-04-12 23:26:02 +02:00
Bartosz Taudul
5fd5091efd Fix handling of unknown symbols. 2020-04-12 23:18:38 +02:00
Bartosz Taudul
3398c969ac Disable scrollbar for source view window. 2020-04-12 17:11:51 +02:00
Bartosz Taudul
ef56c7fa7c Display source files time composition in selected function/symbol. 2020-04-12 17:08:58 +02:00
Bartosz Taudul
078014826b Fix detection of hovering over source lines. 2020-04-12 16:21:03 +02:00
Bartosz Taudul
0794cf56ff Sort inline functions list by time spent in function. 2020-04-12 16:13:39 +02:00
Bartosz Taudul
a0f7cb41c3 Merge building inline symbol list with stats collection. 2020-04-12 16:11:24 +02:00
Bartosz Taudul
de18dd46b6 Don't build inline symbols list, if not needed. 2020-04-12 16:05:49 +02:00
Bartosz Taudul
633902cce5 Display inline functions time composition in symbol. 2020-04-12 16:05:01 +02:00
Bartosz Taudul
58cf97ef5d Display wall time in addition to sample counts. 2020-04-11 22:14:56 +02:00
Bartosz Taudul
c4bddf59e2 Allow access to sampling data before instrumentation is ready. 2020-04-11 18:21:46 +02:00