summaryrefslogtreecommitdiff
path: root/libpcsxcore/gdb_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore/gdb_server.c')
-rw-r--r--libpcsxcore/gdb_server.c128
1 files changed, 0 insertions, 128 deletions
diff --git a/libpcsxcore/gdb_server.c b/libpcsxcore/gdb_server.c
deleted file mode 100644
index 7f7ea2ca..00000000
--- a/libpcsxcore/gdb_server.c
+++ /dev/null
@@ -1,128 +0,0 @@
-#include "socket.h"
-#include "psxcommon.h"
-#include "misc.h"
-#include "system.h"
-#include "dynstr.h"
-#include <stdio.h>
-#include <string.h>
-#include <stddef.h>
-
-static int server_socket, client_socket;
-static int debugger_active, resetting, reset, paused, ack_expected;
-
-enum { PACKET_SIZE = 256 };
-
-void GdbStartServer(void)
-{
- enum { PORT = 3333 };
-
- if (server_socket > 0) {
- GdbStopServer();
- }
-
- server_socket = StartServer(PORT);
-
- if (server_socket > 0) {
- printf("GDB server started on port %hu\n", PORT);
- debugger_active = 1;
- }
- else
- {
- fprintf(stderr, "Could not start GDB server\n");
- }
-}
-
-int GdbServerRunning(void)
-{
- return server_socket > 0;
-}
-
-void GdbStopServer(void)
-{
-}
-
-static void ack(struct dynstr *const reply)
-{
- dynstr_append(reply, "OK");
-}
-
-static void nack(struct dynstr *const reply, const int err)
-{
- dynstr_append(reply, "E %02X", err);
-}
-
-static void HandlePacket(char *const packet, const size_t len)
-{
- struct dynstr reply;
- const char *c = packet;
-
- dynstr_init(&reply);
-
- if (strstr(packet, "qSupported")) {
- dynstr_append(&reply, "PacketSize=%x;swbreak+;hwbreak+", PACKET_SIZE - 1);
- }
- else {
- fprintf(stderr, "Unexpected packet \"%s\"\n", packet);
- return;
- }
-
- printf("gdb <- \"%s\"\n", reply.str);
- WriteSocket(client_socket, reply.str, reply.len);
- dynstr_free(&reply);
-}
-
-static void ProcessCommands(void)
-{
- if (HasClient(client_socket)) {
- char packet[PACKET_SIZE];
- size_t len = sizeof packet;
- const enum read_socket_err err = ReadSocket(client_socket, packet, &len);
-
- switch (err)
- {
- case READ_SOCKET_OK:
- if (len && len < sizeof packet) {
- /* gdb apparently does not send null-terminated strings. */
- packet[len] = '\0';
- printf("gdb -> \"%s\"\n", packet);
- HandlePacket(packet, len);
- }
- break;
-
- case READ_SOCKET_ERR_INVALID_ARG:
- /* Fall through. */
- case READ_SOCKET_ERR_RECV:
- /* Fall through. */
- case READ_SOCKET_SHUTDOWN:
- /* Fall through. */
- default:
- return;
- }
- }
-}
-
-void GdbServerProcessDebug(void)
-{
- ProcessCommands();
-}
-
-void GdbServerVSync(void)
-{
- if (!debugger_active || resetting)
- return;
-
- if (reset) {
- resetting = 1;
- SysReset();
- if (reset == 2)
- LoadCdrom();
- reset = resetting = 0;
- return;
- }
-
- if (client_socket < 1) {
- client_socket = GetClient(server_socket);
- }
-
- ProcessCommands();
-}