Commit Graph

2831 Commits

Author SHA1 Message Date
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
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
Bartosz Taudul
497e73182a Ditto for source navigation. 2020-04-09 23:28:51 +02:00
Bartosz Taudul
072fed288a Use left and right mouse buttons for asm navigation.
Left click on source line just selects the line and the corresponding
asm lines.
Right click does the above and focuses asm view on the first selected
line.
2020-04-09 23:12:17 +02:00
Bartosz Taudul
47d56f6259 Proper scaling of instruction pointer counts. 2020-04-09 22:52:44 +02:00
Bartosz Taudul
f0c7a751c1 Context-sensitive auto-selection of stats mode in source view. 2020-04-09 22:37:49 +02:00
Bartosz Taudul
9d2c03bc5b Allow showing sample data for whole symbol. 2020-04-09 22:23:57 +02:00
Bartosz Taudul
a2385a8b24 Use correct address range. 2020-04-09 22:21:21 +02:00
Bartosz Taudul
0e1c9e2cd1 Highlight source line corresponding to hovered asm line. 2020-04-09 22:02:06 +02:00
Bartosz Taudul
0791871955 Highlight asm lines for hovered source line. 2020-04-09 21:57:28 +02:00
Bartosz Taudul
1e965edb54 Don't separate inlines by default. 2020-04-09 19:44:42 +02:00
Bartosz Taudul
a339d397ce Don't select addresses outside symbol. 2020-04-09 14:10:07 +02:00
Bartosz Taudul
241f59b59f Sprinkle some icons. 2020-04-09 02:33:02 +02:00
Bartosz Taudul
554366ad9f Search for address within current symbol. 2020-04-09 02:12:49 +02:00
Bartosz Taudul
d2ebc58be3 Set sensible combo box heights. 2020-04-09 02:09:54 +02:00
Bartosz Taudul
0f42dc2e4c Fix source-less sample count calculations. 2020-04-09 02:04:22 +02:00
Bartosz Taudul
3177865fc2 Follow jump by clicking on jump arrows. 2020-04-09 02:02:06 +02:00
Bartosz Taudul
a715df6338 Tighten assembly source location display. 2020-04-09 01:52:22 +02:00
Bartosz Taudul
6dd765c101 Tighten mnemonic display. 2020-04-09 01:45:38 +02:00
Bartosz Taudul
bae08c27c8 Tighter assembly address display. 2020-04-09 01:31:27 +02:00
Bartosz Taudul
643c0867ed Add jump arrows tooltip. 2020-04-09 01:09:57 +02:00
Bartosz Taudul
2cd789662b Handle source-less asm lines selection. 2020-04-08 23:59:21 +02:00
Bartosz Taudul
08c58fe8e3 Separate asm lines selection. 2020-04-08 23:59:10 +02:00
Bartosz Taudul
25346c7a55 Disable movement in source view sub-children. 2020-04-08 23:32:36 +02:00
Bartosz Taudul
450229f5e4 Only change assembly target line when necessary. 2020-04-08 23:30:42 +02:00
Bartosz Taudul
3a1f980a36 Prevent opening obsolete source files. 2020-04-08 23:07:59 +02:00
Bartosz Taudul
3e2260bdcb Add color boxes to file selection. 2020-04-08 23:06:38 +02:00
Bartosz Taudul
d300d17f9e Match source and assembly selection. 2020-04-08 22:57:42 +02:00
Bartosz Taudul
bb338a1c97 Symbol file selector. 2020-04-08 22:25:36 +02:00
Bartosz Taudul
a1bad4b7be Build list of symbol source files. 2020-04-08 22:18:00 +02:00
Bartosz Taudul
0551cd8e44 Switching between source files from asm view. 2020-04-08 22:10:58 +02:00
Bartosz Taudul
3f01d3bcb1 Selection of inlined function within symbol. 2020-04-08 22:04:33 +02:00
Bartosz Taudul
006919ec55 Mixed source/assembly symbol view. 2020-04-08 22:04:00 +02:00
Bartosz Taudul
b353e8752d Display inlined function stats within symbols. 2020-04-08 19:09:47 +02:00
Bartosz Taudul
b05625d444 Display count of inlined functions in symbols. 2020-04-08 17:17:45 +02:00
Bartosz Taudul
51d5ef5b4e Allow merging inlined function stats into base symbol. 2020-04-08 17:12:15 +02:00
Bartosz Taudul
02e1a7669c Add offset-less GetSymbolForAddress(). 2020-04-08 16:55:49 +02:00
Bartosz Taudul
a34cfacb5c Stabilize symbol sorting. 2020-04-08 15:55:34 +02:00
Bartosz Taudul
fe98921e4c Add UI for disabling inlines in sample statistics. 2020-04-08 15:52:53 +02:00
Bartosz Taudul
f59f4f266e Add inline symbols list accessor. 2020-04-08 15:34:14 +02:00
Bartosz Taudul
2a06f1545b Store count of proper and inline symbols in trace dump. 2020-04-08 12:52:06 +02:00
Bartosz Taudul
1da1d31e1c Store list of inline symbols. 2020-04-08 12:44:12 +02:00
Bartosz Taudul
a7fffe7e13 Separate opening source and symbol views. 2020-04-08 02:12:09 +02:00
Bartosz Taudul
09cf160088 Split source and symbol views in SourceView. 2020-04-08 01:58:23 +02:00
Bartosz Taudul
1c0ec60b23 Don't try to display assembly line counts if no symbol is selected. 2020-04-08 01:48:22 +02:00
Bartosz Taudul
2ad3f9b51f Index data is already available. 2020-04-05 15:09:13 +02:00
Bartosz Taudul
f1f4f48c38 Perform rate distortion optimization on frame images. 2020-04-05 15:04:18 +02:00
Bartosz Taudul
b19d5731ac Move DXT1 index fixup to texture compression class. 2020-04-05 14:05:43 +02:00
Bartosz Taudul
6d435e08c8 Handle nullptr in FindStringIdx. 2020-04-04 14:42:00 +02:00
Bartosz Taudul
38bfa7bdb6 Include return instructions in jump out list. 2020-04-04 14:30:48 +02:00
Bartosz Taudul
8c260c9d12 Draw jump outs from symbols. 2020-04-04 14:30:47 +02:00
Bartosz Taudul
268af5b67c Adapt to DPI scaling. 2020-04-04 14:30:47 +02:00
Bartosz Taudul
78a0773f38 Collect jumps outside symbol. 2020-04-04 13:51:55 +02:00
Bartosz Taudul
e02e595eec Align jump arrows to pixels. 2020-04-04 13:42:19 +02:00
Bartosz Taudul
aae161e31a Draw jumps in assembly view. 2020-04-04 03:41:10 +02:00
Bartosz Taudul
bda5c1d13e Ignore out-of-symbol jumps. 2020-04-04 03:13:21 +02:00
Bartosz Taudul
f2b044438d Don't print empty text, just advance cursor. 2020-04-04 02:45:01 +02:00
Bartosz Taudul
3711a66592 Calculate jump table. 2020-04-04 02:25:12 +02:00
Bartosz Taudul
b016d9e295 Going from source location to assembly line. 2020-04-02 13:10:18 +02:00
Bartosz Taudul
252e02ba2e One more place where server queue is handled. 2020-04-02 12:15:50 +02:00
Bartosz Taudul
700f189921 Wait for server query queue to drain before terminating. 2020-04-02 12:15:04 +02:00
Bartosz Taudul
562e675a0e Save/load code location data. 2020-04-02 12:12:10 +02:00
Bartosz Taudul
50d9932378 Display number of assembly instructions for each line. 2020-04-02 02:35:41 +02:00
Bartosz Taudul
2b8cf5d132 Add addressess accessor. 2020-04-02 02:17:22 +02:00
Bartosz Taudul
22e9135ab1 Retrieve file name string idx in source view. 2020-04-02 02:15:10 +02:00
Bartosz Taudul
16686739f6 Rebuild string map on trace load. 2020-04-02 02:15:00 +02:00
Bartosz Taudul
e7f4f58886 StringIdx search from string. 2020-04-02 02:08:00 +02:00
Bartosz Taudul
387fdb30b0 Map source location to assembly instructions. 2020-04-02 02:01:58 +02:00
Bartosz Taudul
9f0a6b8231 Make pdqsort always available. 2020-04-02 02:00:21 +02:00
Bartosz Taudul
d3c278cb02 Make source location display optional. 2020-04-02 01:37:56 +02:00
Bartosz Taudul
39cb9f4a32 Display source locations in assembly view. 2020-04-02 01:32:23 +02:00
Bartosz Taudul
b2c2bfc2aa Move HSV color conversion to a separate source file. 2020-04-02 01:04:59 +02:00
Bartosz Taudul
2303f18d39 Add guards to source view header. 2020-04-02 01:02:42 +02:00
Bartosz Taudul
59a49f0698 Jump from assembly to source line. 2020-04-02 00:53:27 +02:00
Bartosz Taudul
327e30fe7c Add source file location tooltip for assembly instructions.
This has bad UX, better solution is needed.
2020-04-02 00:39:17 +02:00
Bartosz Taudul
d204742bb8 Accessor for getting source file, line from address. 2020-04-02 00:31:53 +02:00
Bartosz Taudul
2dd5912fee Cosmetics. 2020-04-02 00:31:41 +02:00
Bartosz Taudul
6392e4d38d Display number of received code locations. 2020-04-02 00:00:46 +02:00
Bartosz Taudul
c8d1f4d3d6 Add code locations size accessor. 2020-04-01 22:38:47 +02:00
Bartosz Taudul
0ec89e9aae Store code address -> source file+line mapping. 2020-04-01 22:37:19 +02:00
Bartosz Taudul
b2a8b53efa Query source location of each assembly instruction. 2020-04-01 21:43:03 +02:00
Bartosz Taudul
9e8089ec1a Improve handling of query queue. 2020-04-01 21:05:25 +02:00
Bartosz Taudul
b6ce693ede Include inline parents when filtering sample statistics. 2020-04-01 13:24:32 +02:00
Bartosz Taudul
0f2095f84a Add missing break. 2020-04-01 13:10:26 +02:00
Bartosz Taudul
57779a8ed9 Cosmetics. 2020-03-31 20:44:44 +02:00
Bartosz Taudul
d08f3a6ea0 Check for samples, not ghost zones. 2020-03-31 02:20:34 +02:00
Bartosz Taudul
b957087456 Add "smart" symbol location to sampled statistics. 2020-03-30 23:58:42 +02:00
Bartosz Taudul
eb48d24182 Store context switch data for threads with ghost zones. 2020-03-30 23:41:21 +02:00
Bartosz Taudul
0ad24f6485 Display graphical representation of line percentage. 2020-03-30 22:49:06 +02:00
Bartosz Taudul
44096dfcf2 Move DrawTextContrast() to TracyImGui.hpp. 2020-03-30 22:39:34 +02:00
Bartosz Taudul
c1ed44bd35 Common percentage printing function. 2020-03-30 22:26:45 +02:00
Bartosz Taudul
11aedf2b27 Proper processing of symbol locations in live capture. 2020-03-30 17:10:59 +02:00
Bartosz Taudul
6fe5d0575f Add parent symbol for inlined symbols in sampled statistics. 2020-03-30 02:50:34 +02:00
Bartosz Taudul
17a5faa5e0 Display parent symbol for inline symbols in source view. 2020-03-30 02:46:29 +02:00
Bartosz Taudul
30771bf7cb Gather failure data before terminating connection. 2020-03-29 23:01:57 +02:00
Bartosz Taudul
48e4d33bea Support call stacks longer than 255 entries. 2020-03-28 18:04:33 +01:00
Bartosz Taudul
d43461584a Don't jump out to symbols without source and code. 2020-03-28 15:11:23 +01:00
Bartosz Taudul
2e1aa844fe Don't try to open invalid files. 2020-03-28 15:06:36 +01:00
Bartosz Taudul
78eb774822 Assembly addresses can be displayed relative to symbol. 2020-03-28 14:42:47 +01:00
Bartosz Taudul
9837e06816 Implement cross-symbol jumping. 2020-03-28 14:27:29 +01:00
Bartosz Taudul
013bb5a4f2 Use generic group categories. 2020-03-28 14:00:21 +01:00
Bartosz Taudul
86aad15e0c Display jump/call target address. 2020-03-28 01:36:51 +01:00
Bartosz Taudul
28db0f6227 Wait for data to be ready. 2020-03-28 01:17:35 +01:00
Bartosz Taudul
8dba099a56 Revert "Base address is not needed."
This reverts commit 058369bc7a.
2020-03-28 00:57:41 +01:00
Bartosz Taudul
22cae56ab1 Decode jump/call addresses. 2020-03-28 00:53:48 +01:00
Bartosz Taudul
fd3b9ca1e5 No need to format string. 2020-03-27 23:59:09 +01:00
Bartosz Taudul
17009b315f Remove unused variable. 2020-03-27 23:59:03 +01:00
Bartosz Taudul
86ca85f39d Initialize variable. 2020-03-27 23:58:49 +01:00
Bartosz Taudul
058369bc7a Base address is not needed. 2020-03-27 23:58:25 +01:00