diff options
Diffstat (limited to 'cpukit/libdebugger')
-rw-r--r-- | cpukit/libdebugger/Makefile.am | 5 | ||||
-rw-r--r-- | cpukit/libdebugger/preinstall.am | 9 | ||||
-rw-r--r-- | cpukit/libdebugger/rtems-debugger-remote.h | 72 | ||||
-rw-r--r-- | cpukit/libdebugger/rtems-debugger-server.h | 217 | ||||
-rw-r--r-- | cpukit/libdebugger/rtems-debugger.h | 81 |
5 files changed, 2 insertions, 382 deletions
diff --git a/cpukit/libdebugger/Makefile.am b/cpukit/libdebugger/Makefile.am index 72a89447d7..b202003e41 100644 --- a/cpukit/libdebugger/Makefile.am +++ b/cpukit/libdebugger/Makefile.am @@ -1,7 +1,7 @@ -if LIBDEBUGGER - include $(top_srcdir)/automake/compile.am +if LIBDEBUGGER + noinst_LIBRARIES = libdebugger.a libdebugger_a_SOURCES = \ rtems-debugger-block.c \ @@ -19,5 +19,4 @@ endif endif -include $(srcdir)/preinstall.am include $(top_srcdir)/automake/local.am diff --git a/cpukit/libdebugger/preinstall.am b/cpukit/libdebugger/preinstall.am deleted file mode 100644 index 695eb30912..0000000000 --- a/cpukit/libdebugger/preinstall.am +++ /dev/null @@ -1,9 +0,0 @@ -## Automatically generated by ampolish3 - Do not edit - -if AMPOLISH3 -$(srcdir)/preinstall.am: Makefile.am - $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am -endif - -if LIBDEBUGGER -endif diff --git a/cpukit/libdebugger/rtems-debugger-remote.h b/cpukit/libdebugger/rtems-debugger-remote.h deleted file mode 100644 index 34ad9ee6d2..0000000000 --- a/cpukit/libdebugger/rtems-debugger-remote.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2016 Chris Johns <chrisj@rtems.org>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Debugger for RTEMS. - */ - -#ifndef _RTEMS_DEBUGGER_REMOTE_h -#define _RTEMS_DEBUGGER_REMOTE_h - -#include <rtems/rtems-debugger.h> -#include <rtems/debugger/rtems-debugger-server.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * Debugger remote. - */ -struct rtems_debugger_remote -{ - const char* name; - int (*begin)(rtems_debugger_remote* remote, const char* device); - int (*end)(rtems_debugger_remote* remote); - int (*connect)(rtems_debugger_remote* remote); - int (*disconnect)(rtems_debugger_remote* remote); - bool (*isconnected)(rtems_debugger_remote* remote); - ssize_t (*read)(rtems_debugger_remote* remote, void* buf, size_t nbytes); - ssize_t (*write)(rtems_debugger_remote* remote, const void* buf, size_t nbytes); - void* data; -}; - -/** - * Register a remote with the server. - */ -int rtems_debugger_remote_register(rtems_debugger_remote* remote); - -/** - * Find a remote by name. - */ -rtems_debugger_remote* rtems_debugger_remote_find(const char* name); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif diff --git a/cpukit/libdebugger/rtems-debugger-server.h b/cpukit/libdebugger/rtems-debugger-server.h deleted file mode 100644 index a345d7649e..0000000000 --- a/cpukit/libdebugger/rtems-debugger-server.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2016-2017 Chris Johns <chrisj@rtems.org>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Debugger for RTEMS. - */ - -#ifndef _RTEMS_DEBUGGER_SERVER_h -#define _RTEMS_DEBUGGER_SERVER_h - -#include <rtems.h> -#include <rtems/printer.h> - -#include <rtems/rtems-debugger.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * Debugger NUMOF macro. - */ -#define RTEMS_DEBUGGER_NUMOF(_d) (sizeof(_d) / sizeof(_d[0])) - -/** - * Machine specific size. Here for 64bit support. - */ -#define DB_UINT uint32_t - -/* - * Debugger signals. - */ -#define RTEMS_DEBUGGER_SIGNAL_HUP 1 /* Hangup */ -#define RTEMS_DEBUGGER_SIGNAL_INT 2 /* Interrupt */ -#define RTEMS_DEBUGGER_SIGNAL_QUIT 3 /* Quit */ -#define RTEMS_DEBUGGER_SIGNAL_ILL 4 /* Illegal instruction */ -#define RTEMS_DEBUGGER_SIGNAL_TRAP 5 /* Trace/breakpoint trap */ -#define RTEMS_DEBUGGER_SIGNAL_ABRT 6 /* Aborted */ -#define RTEMS_DEBUGGER_SIGNAL_EMT 7 /* Emulation trap */ -#define RTEMS_DEBUGGER_SIGNAL_FPE 8 /* Arithmetic exception */ -#define RTEMS_DEBUGGER_SIGNAL_KILL 9 /* Killed */ -#define RTEMS_DEBUGGER_SIGNAL_BUS 10 /* Bus error */ -#define RTEMS_DEBUGGER_SIGNAL_SEGV 11 /* Segmentation fault */ -#define RTEMS_DEBUGGER_SIGNAL_SYS 12 /* Bad system call */ -#define RTEMS_DEBUGGER_SIGNAL_PIPE 13 /* Broken pipe */ -#define RTEMS_DEBUGGER_SIGNAL_ALRM 14 /* Alarm clock */ -#define RTEMS_DEBUGGER_SIGNAL_TERM 15 /* Terminated */ -#define RTEMS_DEBUGGER_SIGNAL_URG 16 /* Urgent I/O condition */ -#define RTEMS_DEBUGGER_SIGNAL_STOP 17 /* Stopped (signal) */ -#define RTEMS_DEBUGGER_SIGNAL_TSTP 18 /* Stopped (user) */ -#define RTEMS_DEBUGGER_SIGNAL_CONT 19 /* Continued */ - -/** - * Timeout period for the Debugger task to stop in usecs. - */ -#define RTEMS_DEBUGGER_TIMEOUT_STOP (5 * 1000 * 1000) - -/** - * Debugger poll wait timeout in usecs. - */ -#define RTEMS_DEBUGGER_POLL_WAIT (10000) - -/** - * Debugger task stack size. - */ -#define RTEMS_DEBUGGER_STACKSIZE (16 * 1024) - -/** - * Debugger output buffer size. - */ -#define RTEMS_DEBUGGER_BUFFER_SIZE (4 * 1024) - -/** - * Debugger flags. - */ -#define RTEMS_DEBUGGER_FLAG_VERBOSE (1 << 0) -#define RTEMS_DEBUGGER_FLAG_RESET (1 << 1) -#define RTEMS_DEBUGGER_FLAG_NON_STOP (1 << 2) -#define RTEMS_DEBUGGER_FLAG_VCONT (1 << 3) -#define RTEMS_DEBUGGER_FLAG_MULTIPROCESS (1 << 4) -#define RTEMS_DEBUGGER_FLAG_VERBOSE_LOCK (1 << 5) -#define RTEMS_DEBUGGER_FLAG_VERBOSE_CMDS (1 << 6) - -/** - * Forward decl for the threads and targets. - */ -typedef struct rtems_debugger_remote rtems_debugger_remote; -typedef struct rtems_debugger_threads rtems_debugger_threads; -typedef struct rtems_debugger_target rtems_debugger_target; - -/** - * Local types for the RTEMS-X interface. - */ -typedef struct _Condition_Control rtems_rx_cond; -typedef struct _Mutex_recursive_Control rtems_rx_mutex; - -/** - * Debugger data. - */ -typedef struct -{ - int port; - int timeout; - rtems_task_priority priority; - rtems_rx_mutex lock; - rtems_debugger_remote* remote; - rtems_id server_task; - rtems_rx_cond server_cond; - volatile bool server_running; - volatile bool server_finished; - rtems_id events_task; - volatile bool events_running; - volatile bool events_finished; - rtems_printer printer; - uint32_t flags; - pid_t pid; - bool remote_debug; - bool ack_pending; - size_t output_level; - uint8_t input[RTEMS_DEBUGGER_BUFFER_SIZE]; - uint8_t output[RTEMS_DEBUGGER_BUFFER_SIZE]; - rtems_debugger_threads* threads; - rtems_chain_control exception_threads; - int signal; - rtems_debugger_target* target; -} rtems_debugger_server; - -/** - * Debugger global variable. - */ -extern rtems_debugger_server* rtems_debugger; - -/** - * Debug server printer. - */ -extern int rtems_debugger_printf(const char* format, ...) RTEMS_PRINTFLIKE(1, 2); -extern int rtems_debugger_clean_printf(const char* format, ...) RTEMS_PRINTFLIKE(1, 2); -extern void rtems_debugger_printk_lock(rtems_interrupt_lock_context* lock_context); -extern void rtems_debugger_printk_unlock(rtems_interrupt_lock_context* lock_context); - -/** - * Lock the Debugger. - */ -extern void rtems_debugger_lock(void); - -/** - * Unlock the Debugger. - */ -extern void rtems_debugger_unlock(void); - -/** - * Is the server still running? - */ -extern bool rtems_debugger_server_running(void); - -/** - * Get the remote handle from the debugger. - */ -extern rtems_debugger_remote* rtems_debugger_remote_handle(void); - -/** - * Is the debugger connected? - */ -extern bool rtems_debugger_connected(void); - -/** - * Is the debugger events thread runnins? - */ -extern bool rtems_debugger_server_events_running(void); - -/** - * Signal events thread in the debug server to run. - */ -extern void rtems_debugger_server_events_signal(void); - -/** - * Check if verbose is on. - */ -extern bool rtems_debugger_verbose(void); - -/** - * Check a flag. - */ -static inline bool rtems_debugger_server_flag(uint32_t mask) -{ - return (rtems_debugger->flags & mask) != 0; -} - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif diff --git a/cpukit/libdebugger/rtems-debugger.h b/cpukit/libdebugger/rtems-debugger.h deleted file mode 100644 index 1fc8b3d522..0000000000 --- a/cpukit/libdebugger/rtems-debugger.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2016 Chris Johns <chrisj@rtems.org>. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Debugger for RTEMS. - */ - -#ifndef _RTEMS_DEBUGGER_h -#define _RTEMS_DEBUGGER_h - -#include <stdbool.h> - -#include <rtems.h> -#include <rtems/printer.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * Timeout period for an ack - */ -#define RTEMS_DEBUGGER_TIMEOUT (3) - -/** - * Start the Debugger. - */ -extern int rtems_debugger_start(const char* remote, - const char* device, - int timeout, - rtems_task_priority priority, - const rtems_printer* printer); - -/** - * Stop the Debugger. - */ -extern int rtems_debugger_stop(void); - -/** - * Is the Debugger running?. - */ -extern bool rtems_debugger_running(void); - -/** - * Verbose control. - */ -extern void rtems_debugger_set_verbose(bool on); - -/** - * Control remote debug printing. - */ -extern int rtems_debugger_remote_debug(bool state); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif |