userDaniel Pcancel
branchrust_reboot/main/hackweek_jit_explorercancel

27 Commits over 0 Days - ∞cph!

14 Days Ago
Buildfix: move type declarations to JITViewer Tests: compiled scripts in all editor build modes
15 Days Ago
Update: consolidate various editor tools in Tools/Engine Tools top menu still doesn't fit on my 1080p screen .-. Tests: checked the Tool menu
15 Days Ago
Update: Update ServerProfiler.Core binaries to release - built from 6737a87e Tests: perfsnapshot in editor, used jit viewer
15 Days Ago
Merge: from main
17 Days Ago
Update: apped hex prefix when emitting native method address Tests: none, trivial change
17 Days Ago
Update: emit address of native function Trying to chase up why sometimes names missmatch with what VS disassembly window shows Tests: viewed BasePlayer::BoxTest
17 Days Ago
Bugfix: use mnemonics instead of bytes when checking if decoding should finish My initial attempt to inpsect raw opcode didn't work in all cases, leading to false-positive parsing aborts. Tests: viewed BasePlayer::ServerUpdate and BasePlayer::BoxTest
18 Days Ago
Update: better detection when to stop decoding stream - now tracks max referenced jump address and stops on last ret or jmp -offset Tests: viewed nested call in BasePlayer::BoxTest
18 Days Ago
Bugfix: ensure instruction pointer gets saved to list only if we stopped parsing teh stream Previously we could add the ip to the list before we decided to stop decoding, leading to out of sync issues Tests: viewed BasePlayer::BoxTest
18 Days Ago
Update: change asm text color if it's a potential address Tests: viewed BasePlayer::BoxTest
18 Days Ago
Bugfix: avoid double-draw Tests: viewed BasePlayer::BoxTest
18 Days Ago
Update: Add relative jump arrows This was much more painful than expected, but a bit of hodge-podge and it's gud Tests: viewed BasePlayer::BoxTest
18 Days Ago
Update: hook up native symbol resolution - ServerProfiler.Core built from 0b3b7d86 This gets us various mono_... calls, but still missing some function names - guessing those are mono-related but not part of mono dll itself Tests: Viewed BasePlayer::BoxTest and stepped through nested calls
19 Days Ago
Update: separate out JITViewer logic from ServerProfiler - ServerProfiler.Core built from 1074407d - also contains native symbol resolving logic, but not plugged in yet JITViewer functionality is now editor only(dll won't ship with builds). Tests: viewed BasePlayerr::BoxTest
19 Days Ago
Update: couple improvements to JIT viewer display - relative jumps are shown as "signed hex" offsets, to avoid jnz 0xffffffffffffffe cases - avoid duplication of address when we have a method name for a jitted address Tests: viewed BasePlayer::BoxTest and BasePlayer::ServerUpdateParallel
20 Days Ago
Clean: get rid of debug logs Tests: none, trivial change
20 Days Ago
Update: remember selecter row index between dissasm states Tests: viewed BasePlayer::BoxTest
20 Days Ago
Update: use consecutive int3s to stop decoding Doesn't always apply, but when it does saves a lot Tests: viewed BasePlayer::BoxTest
20 Days Ago
Update: allow inspecting instructions at address-like values Need to improve stream decoding in those cases, as it can run away to 12k lines of assembly even though the method was over on line 10. Tests: viewed BasePlayer::BoxTest
20 Days Ago
Clean: logic refactor in prep for multiple view support Tests: viewed BasePlayer::BoxTest
20 Days Ago
Update: resolve addresses to methods/trampolines where possible - ServerPorfiler built from 18130132 A bit ugly, but don't care for now Tests: viewed BasePlayer::ServerUpdateParallel
20 Days Ago
Bugfix: jump addresses are now valid - Also added ability to show opcode bytes - ServerProfiler built from 95cd43f7 Was due to invalid use of library API (I should've RTFMd) Tests: viewed BasePlayer::ServerUpdateParallel
21 Days Ago
Clean: remove binary dumping debug code Mystery byte was caused by fopen using "w" mode isntead of "wb", which allows windows to handle special characters. In our case it was injecting an extra byte that was screwing over jumps. But it was all debug code anyway. Tests: none, trivial change
21 Days Ago
Bugfix: treat instruction stream as 64bit, not 32bit - ServerProfiler built from 6c5c94dd Got mislead by Unity's mono --version reporting it as x86. Last bug left - an unexpected byte appearing mid instruction stream when copying from unmanaged, but missing on managed side Tests: viewed BasePlayer::ServerUpdateParallel
21 Days Ago
Bugfix: use ListView+labels intead of multiline TextField Fixes weird disappearing text and gets rid of the vertex limit for text Tests: viewed BasePlayer.ServerUpdateParallel
21 Days Ago
Update: display 32-bit disassembled instruction stream in editor window - ServerProfiler built from 5bff6c48 Couple weird issues - textfield goes invisible half-way through (but can copy the text out of it and goes back visible before end), binary stream differs between managed and unmanaged sides. Will chase up next Tests: viewed BasePlayer::ServerUpdateParallel
21 Days Ago
New: ServerProfiler can now dump raw binary of a managed method after JIT - using debug binary built from facc83cb Baby steps. No idea how to read it yet, and will need to explore how to control optimization levels. Tests: Exported Assembly-CSharp!BasePlayer::ServerUpdateParallel