Commit Graph

326 Commits

Author SHA1 Message Date
Bartosz Taudul
5f97c484f1
Include child samples in symbol view file list. 2021-04-18 19:42:24 +02:00
Bartosz Taudul
22a8c53e8b
Account for case with no local samples (external only). 2021-04-18 19:21:53 +02:00
Bartosz Taudul
526d0cd22a
Display child time and samples in symbol stats. 2021-04-18 19:10:39 +02:00
Bartosz Taudul
c5eb398319
Gather external IP stats (no range limit case). 2021-04-18 19:04:29 +02:00
Bartosz Taudul
8db9bcf7f8
Disable child calls checkbox while processing data. 2021-04-18 18:27:39 +02:00
Bartosz Taudul
0d8ee47231
Store instruction pointer stats as AddrStat. 2021-04-18 16:16:47 +02:00
Bartosz Taudul
3845c392fa
Cosmetics. 2021-04-18 15:52:42 +02:00
Bartosz Taudul
55efa64b3f
Do not copy instruction pointer maps. 2021-04-18 15:51:50 +02:00
Bartosz Taudul
2f6adf3641
Add child calls UI. 2021-04-18 15:00:19 +02:00
Bartosz Taudul
ffe8aebfbd
Extend address stats to include child samples. 2021-04-18 15:00:19 +02:00
Bartosz Taudul
fa8c99fd74
Fix missing limit range checkbox in source view.
This could happen if range was limited in such a way, that no sample was
within the region.
2021-04-18 14:42:35 +02:00
Bartosz Taudul
450013bc27
Update to current uops.info xml file.
This updates ZEN3 and adds Tiger Lake.
2021-04-01 18:46:00 +02:00
Bartosz Taudul
62ac5544b6
Trim empty lines at top and bottom of source preview. 2021-03-27 13:55:22 +01:00
Bartosz Taudul
1cb6c17991
Move syntax color tables to a common header. 2021-03-27 13:03:19 +01:00
Bartosz Taudul
0b5a923e91
Display preview of source code for assembly instructions. 2021-03-26 02:42:15 +01:00
Bartosz Taudul
bd4335bace
Move source file parsing logic to a separate file. 2021-03-26 02:42:14 +01:00
Bartosz Taudul
174bb4d2f1
Extract source code tokenizer to a separate file. 2021-03-26 01:53:49 +01:00
Bartosz Taudul
2fe1fb974a
Display number of entry call stacks in a tooltip. 2021-03-26 00:27:23 +01:00
Bartosz Taudul
29133431bc
Calculate symbol address for parents earlier.
While currently this makes no sense, it will be also used in common code
path.
2021-03-26 00:17:46 +01:00
Bartosz Taudul
ec16182887
Only pack pointer if needed. 2021-03-26 00:14:12 +01:00
Stone Tickle
1918c0ffe6
fix TRACY_NO_FILESELECTOR macro 2021-03-17 08:51:24 +09:00
Bartosz Taudul
c08d591bf3 Use proper capstone include path. 2021-01-26 20:35:57 +01:00
Bartosz Taudul
3495a5a678 Print Arm machine code as a 4-byte number would be printed. 2020-11-28 13:24:56 +01:00
Bartosz Taudul
63e3c236f4 Add Zen 3 to list of uarchs. 2020-11-15 21:29:59 +01:00
Bartosz Taudul
2f77885fd9 Show if an matching microarchitecture is selected. 2020-11-13 17:37:53 +01:00
Bartosz Taudul
d7059eca63 Prepare for Zen 3.
0xA20F10 is Vermeer.
2020-11-07 00:26:45 +01:00
Bartosz Taudul
30b4eafa22 Add Zen 2 CPU ids.
0x860F81 is Lucienne.
0x890F00 is VanGogh.
2020-11-07 00:26:00 +01:00
Bartosz Taudul
b36e821cc7 Add cascade lake CPU ids. 2020-11-07 00:20:55 +01:00
Bartosz Taudul
02c90db2e4 Display op description, if available. 2020-11-07 00:16:10 +01:00
Bartosz Taudul
a5fd6662be Add CLX to list of uarchs. 2020-11-07 00:07:20 +01:00
Bartosz Taudul
0c48956410 Fix parsing of source files that do not end in newline. 2020-10-28 21:43:03 +01:00
Bartosz Taudul
3976408550 Adapt to non-obsolete ImGuiListClipper interface. 2020-10-18 22:51:59 +02:00
Bartosz Taudul
07fe1266b0 Fix string iteration condition. 2020-10-02 19:31:42 +02:00
Bartosz Taudul
a2f0f7754d Fix integer types. 2020-10-02 19:30:01 +02:00
Bartosz Taudul
f828fed015 Remove unused variables. 2020-08-15 02:23:04 +02:00
Bartosz Taudul
fa7d515165 Display base symbol address in symbol view window. 2020-08-13 16:36:13 +02:00
Bartosz Taudul
b6d54281a9 Ignore unknown source lines during ip stats gathering. 2020-08-13 00:34:55 +02:00
Bartosz Taudul
8e9a701277 Fix crash when trying to open unavailable source file. 2020-08-12 19:05:16 +02:00
Bartosz Taudul
8cfc614047 Include time range limits in symbol view functions list. 2020-08-11 21:07:23 +02:00
Bartosz Taudul
46163a1989 Implement asm ip stats counter. 2020-08-11 21:07:23 +02:00
Bartosz Taudul
7aa8e408df Remove unused variable. 2020-08-11 16:02:07 +02:00
Bartosz Taudul
5dd7c7e402 Add time range limiting to symbol view. 2020-08-10 18:58:33 +02:00
Bartosz Taudul
85f54499fe Add range limit UI to symbol view. 2020-08-10 12:11:07 +02:00
Bartosz Taudul
6fe3736a23 When selecting function in symbol view, go to function location. 2020-07-19 23:43:52 +02:00
Bartosz Taudul
d614dbeda3 Show image name next to symbol name. 2020-07-14 17:23:04 +02:00
Bartosz Taudul
21ddd0a820 Postpone initialization of hashmaps. 2020-06-12 11:26:44 +02:00
Bartosz Taudul
d1ef8ea90b Set owner of file dialogs on windows. 2020-06-10 01:52:17 +02:00
Bartosz Taudul
929d399995 Fix determination of line width. 2020-06-08 14:02:11 +02:00
Bartosz Taudul
c384ec132f Fix position of source separator line. 2020-06-06 20:50:24 +02:00
Bartosz Taudul
9c49ee3dd3 Don't mark windows as write-modified when only reading data. 2020-06-06 20:46:46 +02:00
Bartosz Taudul
ecfeb01aad Set source view content width to max value, regardless of clipping. 2020-06-06 12:37:05 +02:00
Bartosz Taudul
16b116ee83 Enable horizontal scrollbar in source view. 2020-06-05 19:04:12 +02:00
Bartosz Taudul
71d789063e Show only relevant options in asm view. 2020-06-04 19:59:13 +02:00
Bartosz Taudul
3fbc2c8036 Increase buffer size. 2020-06-04 19:54:11 +02:00
Bartosz Taudul
e19a981b8c Fix display of unknown source locations in asm view. 2020-06-04 19:39:43 +02:00
Bartosz Taudul
ce2e01bcd7 Skip processing uarch data if AT&T mode is enabled. 2020-06-04 19:30:44 +02:00
Bartosz Taudul
adc2c12a67 Clear asm data when opening just source view. 2020-06-04 19:20:24 +02:00
Bartosz Taudul
c52936855e Don't read beyond buffer end. 2020-06-04 02:46:46 +02:00
Bartosz Taudul
4f3934ae6a Use correct symbol address. 2020-05-26 02:08:30 +02:00
Bartosz Taudul
898a10ef82 Display base function is symbol as '[ - self - ]'. 2020-05-25 21:42:01 +02:00
Bartosz Taudul
45a9878193 Don't depend on zero-termination of source code. 2020-05-23 17:07:23 +02:00
Bartosz Taudul
5b96809f6f Add notification when source file is loaded from cache. 2020-05-23 15:44:19 +02:00
Bartosz Taudul
ee22cf3b0c Use cached source files. 2020-05-23 15:44:19 +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
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
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
50c66174dd Add ability to show callstack to an asm line. 2020-05-10 16:56:38 +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
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
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
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
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
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
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
9a77a59cb2 Display sample percentage columns only if there's data. 2020-04-24 00:49:38 +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
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
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
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
5233f8d4ad Mark source lines which generated assembly. 2020-04-13 17:47:41 +02:00
Bartosz Taudul
a074d18dfa Don't display source files, if none available. 2020-04-12 23:26:02 +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
6c76c8098b Draw hotness markers next to sample percentage counts. 2020-04-11 01:59:15 +02:00
Bartosz Taudul
2c11418d33 Calculate max sample counts during ip map creation. 2020-04-11 01:34:44 +02:00
Bartosz Taudul
5bc01124c2 Draw jump range and target on scroll bar, when highlighted. 2020-04-10 23:31:25 +02:00
Bartosz Taudul
ca66dc9ba0 More code deduplication. 2020-04-10 23:13:51 +02:00
Bartosz Taudul
ac37898331 Go to white-hot color for ip count over max. 2020-04-10 23:10:26 +02:00
Bartosz Taudul
126a587aa3 Less code duplication. 2020-04-10 23:07:52 +02:00
Bartosz Taudul
61828070c5 Display tooltip for sample percentage. 2020-04-10 23:03:47 +02:00
Bartosz Taudul
895e06d778 Draw asm line hotness. 2020-04-10 17:27:57 +02:00
Bartosz Taudul
f6400880b0 Scroll bar decorations for asm lines. 2020-04-10 17:27:57 +02:00
Bartosz Taudul
bcfd32e49f Decorate source scroll bar with line hotness. 2020-04-10 17:27:57 +02:00
Bartosz Taudul
e51844eba3 Decorate source scroll bar with selected and highlighted line. 2020-04-10 16:56:56 +02:00
Bartosz Taudul
a6c0ac4273 Tighten assembly counts in source view. 2020-04-10 00:40:31 +02:00
Bartosz Taudul
14ec7ea6cd Tighten line numbers in source view. 2020-04-10 00:37:46 +02:00