Commit graph

231 commits

Author SHA1 Message Date
Unknown W. Brackets
f0694ba115 Debugger: Add some docs for new APIs. 2018-06-16 15:42:42 -07:00
Unknown W. Brackets
e6917cccf6 Debugger: Add APIs to retrieve render image. 2018-06-16 15:33:02 -07:00
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