Commit Graph
229 Commits
Author SHA1 Message Date
Unknown W. Brackets 085bcde865 Debugger: Ignore invalid branches.
These happen on bytes that are not actually code.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets 25085fa394 Debugger: Add func name and data symbol to disasm. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets b114656321 Debugger: Allow conditions on threadID/moduleID.
And now step over/out/into can tie to the correct thread.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets a863ce79ad Debugger: Allow stepping based on thread. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets b828497fe2 Debugger: Avoid some lock ordering issues.
Ideally get rid of the memory lock...
2018-06-08 06:59:18 -07:00
Unknown W. Brackets 5bfba9b284 Debugger: Add HLE API funcs.
Lumping function symbols in here too, they're pretty related...
2018-06-08 06:59:18 -07:00
Unknown W. Brackets 5670fc03ae Debugger: Add debug interfaces for threads.
This way we can switch context.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets 3193772e78 Debugger: Use a lock for memory reallocs.
Simpler this way, no need to remember to lock memory.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets 8598fc9912 Debugger: Add some missing memory locks.
We can restart memory when loading save states, so we need this even while
we've got startup/shutdown locked.
2018-06-08 06:59:18 -07:00
Unknown W. Brackets b2cc4a0965 Debugger: Add memory breakpoint management. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 29d93c56c7 Debugger: Initial breakpoint APIs. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 18dcea4cdc Debugger: Disasm search API. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 6cf24b34fc Debugger: Add thread safety to breakpoints. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 5b132c904a Debugger: Fix resume not skipping breakpoints. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 65feb5f09c Debugger: Include assembler API. 2018-06-08 06:59:18 -07:00
Unknown W. Brackets 2f3b6c19d0 Debugger: Poll frequently after stepping.
This will make us listen for events slightly less often, so we don't want
to sustain it.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets fc8ad3b47b json: Optimize writing a bit.
This improves the responsiveness of certain APIs.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets ccea863f00 Debugger: Use fragments for long chunks.
Gets it on the wire faster.  More importantly, this allows us to usually
avoid rampant memory allocation even for large responses.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets e746a2d106 Debugger: Add stepping to WebSocket API. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets f66738eac7 Debugger: Add cpu.evaluate method.
Probably useful for a bunch of things, really.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets 8a0e02e223 Debugger: Prevent crazy disasm range.
Also add some documentation.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets 1c107308cd Debugger: Add additional encoding/symbol info. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets 944948a5f4 Debugger: Initial disasm API. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets 4da97b3f9e Debugger: Lock during startup/shutdown.
Otherwise things can get freed while we're trying to inspect them.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets b756d92139 Debugger: Add version event for future proofing.
Game isn't precisely right, but it's close enough.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets 05c560b52d Debugger: Include PC and ticks in stepping events. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets 3dac5f2103 Debugger: Add current game info. 2018-06-08 06:59:17 -07:00
Unknown W. Brackets 77131e737b Log: Use a separate field for the timestamp.
Better than parsing it since we already have the header separate.  Simpler
too.
2018-06-08 06:59:17 -07:00
Unknown W. Brackets 6bec3db3fb Debugger: Disconnect on shutdown/disable.
Although, it could be made safe to keep them up when restarting with
debugging still enabled.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets f02bd4daff Debugger: Use a counter when entering stepping.
This allows us to poll coreState and know if a new stepping needs to be
sent.  This is useful to allow e.g. regs to show changes per step.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets d67a1d4a3a Debugger: Allow pinging current status.
Helps especially when reconnecting.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets c44d8dbe2d Debugger: Name the WebSocket debugger thread. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets a341994622 Debugger: Add cpu.stepping and cpu.resume. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets a4044fd6a0 Debugger: Reorganize state handling.
Looking like this will be needed for disasm caches, etc.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets 0a21063525 Debugger: Cleanup, add initial API docs. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets 3c458310ed Debugger: Allow setting regs to inf/nan. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets be3b50dd74 Debugger: Improve JSON number parsing.
With gason, this becomes doable without overflow issues.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets 1f987bf1c1 Debugger: Initial register get/set APIs. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets 123723286d Debugger: Synchronize error events using tickets. 2018-06-08 06:59:16 -07:00
Unknown W. Brackets b37d59e8fa Debugger: Organize WebSocket event handling.
Just a starting point to organize it.  Trying to keep it simple.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets c2b9b5a9e8 Debugger: Serve a simple log listener WebSocket.
Planning to add more functionality to it, and sharing the reporting port
is possibly not ideal - although it would make discovery easier.
2018-06-08 06:59:16 -07:00
Unknown W. Brackets eb4b59b530 arm64jit: Enable breakpoints.
Memory breakpoints not yet really tested.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets 3c8cc5ab64 Debugger: Fix initialization issues.
Sometimes temp breakpoints had log set by accident.
2018-06-06 17:31:56 -07:00
Unknown W. Brackets 0f84c2e995 Debugger: Consistently handle invalid addresses. 2018-06-06 05:58:49 -07:00
Unknown W. Brackets 0b8359fd77 Debugger: Add mutexing to disassembly manager.
It was crashing when accessing from another thread.

If in the future we go down to only the remote debugger, we could
potentially remove this.
2018-06-06 05:58:49 -07:00
Unknown W. Brackets 89f89ec749 Debugger: Defer active symbol updates.
This makes it faster when loading many modules/functions/etc., for example
when using the freeze debug feature.
2017-12-26 18:11:22 -08:00
Henrik Rydgård 21fe73c8e7 Switch strncpy to truncate_cpy in a bunch of places. 2017-05-26 19:04:08 +02:00
Unknown W. Brackets 7613fd97aa Windows: Fix minor leak in disassembly UI. 2017-04-27 20:02:49 -07:00
Henrik Rydgard 26a2d42731 Big mutex overhaul - remove our custom ones, make them non-recursive where possible 2017-02-28 11:40:29 +01:00
Henrik Rydgard 03dab0fdbd More UWP prep 2017-02-25 09:57:22 +01:00