libdebugger: Fix the mode on task create. Clean up warnings.

Closes #2976.
This commit is contained in:
Chris Johns
2017-04-19 14:33:29 +10:00
parent 3d803afef2
commit 7f95cc0707

View File

@@ -245,8 +245,8 @@ rtems_debugger_task_create(const char* name,
sc = rtems_task_create (tname, sc = rtems_task_create (tname,
priority, priority,
stack_size, stack_size,
RTEMS_FLOATING_POINT | RTEMS_LOCAL,
RTEMS_PREEMPT | RTEMS_NO_ASR, RTEMS_PREEMPT | RTEMS_NO_ASR,
RTEMS_LOCAL | RTEMS_FLOATING_POINT,
id); id);
if (sc != RTEMS_SUCCESSFUL) { if (sc != RTEMS_SUCCESSFUL) {
*id = 0; *id = 0;
@@ -277,6 +277,7 @@ rtems_debugger_task_destroy(const char* name,
{ {
while (timeout) { while (timeout) {
bool has_finished; bool has_finished;
rtems_debugger_lock(); rtems_debugger_lock();
has_finished = *finished; has_finished = *finished;
rtems_debugger_unlock(); rtems_debugger_unlock();
@@ -384,24 +385,24 @@ static int
rtems_debugger_remote_connect(void) rtems_debugger_remote_connect(void)
{ {
rtems_debugger_remote* remote = rtems_debugger_remote_handle(); rtems_debugger_remote* remote = rtems_debugger_remote_handle();
if (remote == NULL) { if (remote != NULL) {
errno = EIO; if (!remote->isconnected(remote))
return -1; return remote->connect(remote);
} }
if (!remote->isconnected(remote)) errno = EIO;
return remote->connect(remote); return -1;
} }
static int static int
rtems_debugger_remote_disconnect(void) rtems_debugger_remote_disconnect(void)
{ {
rtems_debugger_remote* remote = rtems_debugger_remote_handle(); rtems_debugger_remote* remote = rtems_debugger_remote_handle();
if (remote == NULL) { if (remote != NULL) {
errno = EIO; if (remote->isconnected(remote))
return -1; return remote->disconnect(remote);
} }
if (remote->isconnected(remote)) errno = EIO;
return remote->disconnect(remote); return -1;
} }
static int static int
@@ -1884,7 +1885,7 @@ rtems_debugger_destroy(void)
if (rr < 0 && r == 0) if (rr < 0 && r == 0)
r = rr; r = rr;
rr = rtems_debugger_task_destroy("DBSr", rr = rtems_debugger_task_destroy("DBSs",
rtems_debugger->server_task, rtems_debugger->server_task,
&rtems_debugger->server_finished, &rtems_debugger->server_finished,
RTEMS_DEBUGGER_TIMEOUT_STOP); RTEMS_DEBUGGER_TIMEOUT_STOP);
@@ -1906,6 +1907,12 @@ rtems_debugger_main(rtems_task_argument arg)
{ {
int r; int r;
rtems_debugger_lock();
rtems_debugger->server_running = true;
rtems_debugger->server_finished = false;
rtems_debugger_unlock();
rtems_debugger_printf("rtems-db: remote running\n"); rtems_debugger_printf("rtems-db: remote running\n");
while (rtems_debugger_server_running()) { while (rtems_debugger_server_running()) {
@@ -1940,8 +1947,8 @@ rtems_debugger_start(const char* remote,
return -1; return -1;
rtems_debugger_lock(); rtems_debugger_lock();
rtems_debugger->server_running = true; rtems_debugger->server_running = false;
rtems_debugger->server_finished = false; rtems_debugger->server_finished = true;
rtems_debugger_unlock(); rtems_debugger_unlock();
r = rtems_debugger_task_create("DBSs", r = rtems_debugger_task_create("DBSs",