Commit graph

24459 commits

Author SHA1 Message Date
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
22940f0393 Debugger: Avoid asserts in disassembly. 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
a2d82cb654 Debugger: Add checkbox to enable remote debugger.
It's not a setting though, so maybe a button would be better.  Or, it
could be the startup setting...
2018-06-08 06:59:16 -07:00
Unknown W. Brackets
f81fa27abe Debugger: Add config for remote debugger on start. 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
98cddad73a Debugger: Minor cleanup in MIPSDebugInterface. 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
Henrik Rydgård
d1b06bbd41
Merge pull request #11158 from Enverex/patch-1
Add missing include
2018-06-08 13:19:05 +02:00
Benjamin Hodgetts
79b3f81b0c
Add missing include
Fixes issue https://github.com/hrydgard/ppsspp/issues/11157
2018-06-08 12:11:05 +01:00
Henrik Rydgård
d63e044d4b
Merge pull request #11152 from unknownbrackets/debugger-http
Move internal webserver to Core, add WebSocket stuff
2018-06-08 09:27:34 +02:00
Henrik Rydgård
15737c4139
Merge pull request #11155 from unknownbrackets/ipv6
net: Use WSAAddressToString for Windows XP
2018-06-08 09:26:19 +02:00
Unknown W. Brackets
df72abcd62 net: Use WSAAddressToString for Windows XP.
Unfortunately, we don't have inet_ntop on older Windows.
2018-06-07 23:22:28 -07:00
Unknown W. Brackets
3a8a2ff933 http: Move web server to core and use flags.
This way we can independently control the debugger and disc sharing, since
debugger could have security impact.
2018-06-07 16:28:01 -07:00
Unknown W. Brackets
042256337a thread: Add a simple thread executor. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
403632b4ca http: Correct WebSocket close when code missing. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
0fb15fc0d0 http: Use a buffer for WebSocket output.
This way we can more safely write as much as we want.
2018-06-07 14:11:52 -07:00