Commit ba70a624e9fae13d349111311b522771122a4dd9
1 parent
ca87d03b
Improve readability by moving the continue operation into aseparate function.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4059 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
13 additions
and
15 deletions
gdbstub.c
@@ -121,6 +121,16 @@ int use_gdb_syscalls(void) | @@ -121,6 +121,16 @@ int use_gdb_syscalls(void) | ||
121 | return gdb_syscall_mode == GDB_SYS_ENABLED; | 121 | return gdb_syscall_mode == GDB_SYS_ENABLED; |
122 | } | 122 | } |
123 | 123 | ||
124 | +/* Resume execution. */ | ||
125 | +static inline void gdb_continue(GDBState *s) | ||
126 | +{ | ||
127 | +#ifdef CONFIG_USER_ONLY | ||
128 | + s->running_state = 1; | ||
129 | +#else | ||
130 | + vm_start(); | ||
131 | +#endif | ||
132 | +} | ||
133 | + | ||
124 | static void put_buffer(GDBState *s, const uint8_t *buf, int len) | 134 | static void put_buffer(GDBState *s, const uint8_t *buf, int len) |
125 | { | 135 | { |
126 | #ifdef CONFIG_USER_ONLY | 136 | #ifdef CONFIG_USER_ONLY |
@@ -908,11 +918,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | @@ -908,11 +918,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | ||
908 | env->pc = addr; | 918 | env->pc = addr; |
909 | #endif | 919 | #endif |
910 | } | 920 | } |
911 | -#ifdef CONFIG_USER_ONLY | ||
912 | - s->running_state = 1; | ||
913 | -#else | ||
914 | - vm_start(); | ||
915 | -#endif | 921 | + gdb_continue(s); |
916 | return RS_IDLE; | 922 | return RS_IDLE; |
917 | case 's': | 923 | case 's': |
918 | if (*p != '\0') { | 924 | if (*p != '\0') { |
@@ -935,11 +941,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | @@ -935,11 +941,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | ||
935 | #endif | 941 | #endif |
936 | } | 942 | } |
937 | cpu_single_step(env, 1); | 943 | cpu_single_step(env, 1); |
938 | -#ifdef CONFIG_USER_ONLY | ||
939 | - s->running_state = 1; | ||
940 | -#else | ||
941 | - vm_start(); | ||
942 | -#endif | 944 | + gdb_continue(s); |
943 | return RS_IDLE; | 945 | return RS_IDLE; |
944 | case 'F': | 946 | case 'F': |
945 | { | 947 | { |
@@ -961,11 +963,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | @@ -961,11 +963,7 @@ static int gdb_handle_packet(GDBState *s, CPUState *env, const char *line_buf) | ||
961 | if (type == 'C') { | 963 | if (type == 'C') { |
962 | put_packet(s, "T02"); | 964 | put_packet(s, "T02"); |
963 | } else { | 965 | } else { |
964 | -#ifdef CONFIG_USER_ONLY | ||
965 | - s->running_state = 1; | ||
966 | -#else | ||
967 | - vm_start(); | ||
968 | -#endif | 966 | + gdb_continue(s); |
969 | } | 967 | } |
970 | } | 968 | } |
971 | break; | 969 | break; |