summaryrefslogtreecommitdiffstats
path: root/cpukit/libdebugger (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cpukit/libdebugger: Fix stepping on ARM architecturesChris Johns2022-10-311-313/+495
| | | | Closes #4744
* libdebugger: Add a target break call to suspend all running threadsChris Johns2022-10-181-16/+56
| | | | | | | - Optionally wait if there is no remote debugger connected and break when the remote connects Closes #4740
* libdebugger/aarch64: Set .start section to RWChris Johns2022-08-251-1/+22
| | | | - Stops the server crashing when setting breakpoints in .start
* cpukit/libdebugger: Add MicroBlaze supportKinsey Moore2022-02-231-0/+1393
| | | | | | | | | | | | Add MicroBlaze support for libdebugger. This uses only software break type instructions to provide self-hosted GDB debugging support for applications since internal control of debug hardware is not possible. Also of note, this implementation for MicroBlaze would typically use the brki instruction for software break, but instead uses an illegal opcode to manage software breaks as exceptions. This is due to poor interaction with the debug hardware where the debug hardware will intercept software breaks instead of allowing the software break vector to execute.
* cpukit/libdebugger: Avoid cascade for interruptsKinsey Moore2022-02-232-6/+104
| | | | | | This updates behavior of libdebugger to handle debug exceptions in interrupt context by temporarily removing a software breakpoint, stepping, and then resuming afterward.
* cpukit/libdebugger: Add pure swbreak capabilityKinsey Moore2022-02-232-4/+14
| | | | | | | | Add a capability that allows for implementations that operate purely using software breaks. Due to this implementation method, software breaks must not be restored until just before returning control to the thread itself and will be handled by the implementation through thread switch and interrupt hooks.
* cpukit/libdebugger: Avoid missed swbreak removalKinsey Moore2022-02-231-0/+16
| | | | | | | It is possible to remove software breaks without actually restoring the original instruction to memory. When this happens, the original instruction is lost. This ensures that the original instruction is restored when a software break is removed.
* cpukit/aarch64: Add libdebugger supportKinsey Moore2021-11-011-0/+1884
| | | | | | This adds support for libdebugger under AArch64 using software breakpoints and the single-step execution mode present in all AArch64 CPUs.
* cpukit/libdebugger: Use uintptr_t for pointersKinsey Moore2021-11-015-20/+20
| | | | | Use uintptr_t instead of DB_UINT when the variable in question describes a pointer.
* rtems-debugger: Fixed pointer types to work on 32 and 64 bit architecturesStephen Clark2021-10-273-8/+28
| | | | | | | Using 32bit types like uint32_t for pointers creates issues on 64 bit architectures like AArch64. Replaced occurrences of these with uintptr_t, which will work for both 32 and 64 bit architectures. Added hex_decode_addr function to rtems-debugger.
* cpukit/libdebugger: Fix for sockaddr_in not being initializedHarrison Edward Gerber2021-06-021-1/+1
| | | | | | See also CID 1468684 Closes #4445
* rtems-debugger-threads.c: Fix Unchecked return value error (CID #1468688)Ryan Long2021-02-261-1/+3
| | | | | | CID 1468688: Unchecked return value in snapshot_thread(). Closes #4262
* rtems-debugger-threads.c: Fix three Dereference before null check errorsRyan Long2021-02-121-3/+11
| | | | | | | | CID 1468681: Dereference before null check in rtems_debugger_thread_continue(). CID 1468690: Dereference before null check in rtems_debugger_thread_system_resume(). CID 1468694: Dereference before null check in rtems_debugger_thread_find_index(). Closes #4241.
* rtems-debugger-target.c: Fix Dereference before null check (CID #1468682)Ryan Long2021-02-121-2/+4
| | | | | | | CID 1468682: swbreaks is assigned a value dereferenced from target before it has been verified that target is not null. Closes #4240.
* libdebugger: Fix for Armv8-RSebastian Huber2020-12-221-0/+7
| | | | | | This architecture variant has no MMU. Update #4202.
* libdebugger/arm: Clean up the building on arm variants.Chris Johns2019-10-191-29/+21
|
* libdebugger/arm: Support ROM tables.Chris Johns2019-08-121-9/+294
| | | | | - Parse the ROM taables if present to find the component base for the debug hardware. This lets the RPi2 run dl09.exe.
* libdebugger: ARM fixes for Cortex-A8 and ARM mode.Chris Johns2019-07-314-247/+663
| | | | | | | | | - Fix destorying the target and thread parts. - Fix the ARM backend to support Cortex-A8 and ARM mode code. - Use the DBGDSCR interrupt mask when single stepping. - Use the DBGDSCR method of entry to debug mode to filter the execptions. - Add support for BSPs to control the ARM backend.
* score: Add and use _Thread_Get_unmapped_priority().Sebastian Huber2019-06-281-3/+2
| | | | Add and use _Thread_Get_unmapped_real_priority().
* libdebugger: Unmap thread prioritiesSebastian Huber2019-06-261-2/+3
|
* libdebugger: Fix for ARMv7-M with -O0 optimizationChris Johns2019-04-092-5/+21
|
* libdebugger: Use an offset table to format GDB `g` packets.Chris Johns2019-04-097-214/+472
| | | | | | | Adding support for a register offset table lets FPU registers be supported if added to the backend. Closes #3733.
* Include missing <rtems/score/thread.h>Sebastian Huber2018-11-091-0/+2
| | | | Update #3598.
* build: Merge libdebugger/Makefile.amSebastian Huber2018-10-091-22/+0
|
* Use rtems_task_exit()Sebastian Huber2018-10-021-2/+2
| | | | | Update #3530. Update #3533.
* libdebugger: Move to separate librarySebastian Huber2018-05-023-56/+8
| | | | | | | | | | Always build remote TCP support since it depends only on the POSIX socket API. It works with the legacy network stack and libbsd. Move it to a separate libdebugger.a library to allow an easy use with libbsd via "-ldebugger -lbsd" otherwise we would have a cyclic dependency between libbsd.a and librtemscpu.a. Update #3419.
* Remove make preinstallChris Johns2018-01-255-382/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
* libdebugger: Avoid use of <bsp/linker-symbols.h>Sebastian Huber2017-12-131-2/+4
| | | | Update #3254.
* libdebugger/i386 Fix i386 backend after changes.Chris Johns2017-08-161-1/+16
| | | | Closes #3097.
* libdebugger: Fixes to debugging, ARM support, locking, and gcc-7.1 warnings.Chris Johns2017-08-1515-313/+466
| | | | | | | | | | | | | | - Add `printk` support to aid multi-core debugging. - Add lock trace to aid lock debugging. - Fixes to gcc-7.1 warnings. - Fixes from ticket #2879. - Add verbose command controls. - Change using the RTEMS sys/lock.h API to manage exception threads. - ARM hardware breakpoint fixes. Support for SMP stepping is not implemented, this requires use of the context id register. Closes #2879.
* libdebugger: Fix the mode on task create. Clean up warnings.Chris Johns2017-04-191-14/+21
| | | | Closes #2976.
* libdebugger: Work around assert when using _Thread_Executing.Chris Johns2017-04-152-2/+8
| | | | | | | Using _Thread_Executing with RTEMS_DEBUG results in an `assert` if the server accesses invalid memory. Updates #2993.
* Add and use rtems_assoc_thread_states_to_string()Sebastian Huber2017-01-121-50/+3
|
* libdebugger: Fix const qualifierSebastian Huber2017-01-121-1/+1
|
* score: Replace STATES_DELAYINGSebastian Huber2017-01-121-1/+0
| | | | | | | | Replace STATES_DELAYING with STATES_WAITING_FOR_TIME. There is no need for separate timeout thread states. The Thread_Control::Timer::header and Watchdog_Control::cpu members can be used to figure out the kind of timeout.
* score: Add STATES_THREAD_QUEUE_WITH_IDENTIFIERSebastian Huber2017-01-111-5/+3
| | | | | Add thread state bit to identify thread queues that are embedded in an object with identifier.
* score: Delete STATES_WAITING_FOR_BUFFERSebastian Huber2017-01-111-1/+0
|
* libdebugger: Build for ARM's without a CP15.Chris Johns2016-12-021-40/+114
|
* cpukit: Add libdebugger, a remote debugger agent for GDB.Chris Johns2016-11-2918-0/+6294