diff options
-rw-r--r-- | cmake/cmake.d/01-variables.cmake | 3 | ||||
-rw-r--r-- | cmake/cmake.d/02-macros.cmake | 7 | ||||
-rw-r--r-- | gdb/gdb-native-target.ini.in (renamed from gdb/gdb-on-target.ini.in) | 19 |
3 files changed, 19 insertions, 10 deletions
diff --git a/cmake/cmake.d/01-variables.cmake b/cmake/cmake.d/01-variables.cmake index 3891f53..a06c537 100644 --- a/cmake/cmake.d/01-variables.cmake +++ b/cmake/cmake.d/01-variables.cmake @@ -147,3 +147,6 @@ if(OSRELEASE MATCHES "debian" AND NOT DEFINED ENV{SDKTARGETSYSROOT} AND NOT DEFI set(PACKAGING_DEB_OUTPUT_CONTROL ${PROJECT_PKG_ENTRY_POINT}/debian.control) set(PACKAGING_DEB_OUTPUT_RULES ${PROJECT_PKG_ENTRY_POINT}/debian.rules) endif() + +# Break After Binding are loaded but before they get initialised +set(GDB_INITIAL_BREAK "personality" CACHE STRING "Initial Break Point for GDB remote")
\ No newline at end of file diff --git a/cmake/cmake.d/02-macros.cmake b/cmake/cmake.d/02-macros.cmake index 5f8e5fa..8cb0e45 100644 --- a/cmake/cmake.d/02-macros.cmake +++ b/cmake/cmake.d/02-macros.cmake @@ -85,15 +85,18 @@ macro(project_targets_populate) add_custom_command(OUTPUT ${PACKAGE_LIBDIR}/${P}${OUT}.so COMMAND mkdir -p ${PACKAGE_LIBDIR} COMMAND cp ${BD}/${P}${OUT}.so ${PACKAGE_LIBDIR} + DEPENDS ${BD}/${P}${OUT}.so ) - add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_LIBDIR}/${P}${TARGET}.so) +message ("DEPENDS ${BD}/${P}${OUT}.so") + add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${TARGET} DEPENDS ${PACKAGE_LIBDIR}/${P}${OUT}.so) add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) elseif(${T} STREQUAL "EXECUTABLE") add_custom_command(OUTPUT ${PACKAGE_BINDIR}/${P}${OUT} COMMAND mkdir -p ${PACKAGE_BINDIR} COMMAND cp ${BD}/${P}${OUT} ${PACKAGE_BINDIR} + DEPENDS ${BD}/${P}${OUT} ) - add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_BINDIR}/${P}${TARGET}) + add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${TARGET} DEPENDS ${PACKAGE_BINDIR}/${P}${OUT}) add_dependencies(populate ${POPULE_PACKAGE_TARGET} ${TARGET}) elseif(${T} STREQUAL "HTDOCS") add_custom_command(OUTPUT ${PACKAGE_HTTPDIR}-xx diff --git a/gdb/gdb-on-target.ini.in b/gdb/gdb-native-target.ini.in index 52a33e2..1ba6bdb 100644 --- a/gdb/gdb-on-target.ini.in +++ b/gdb/gdb-native-target.ini.in @@ -3,9 +3,13 @@ # Usage: remote-target-populate update script under ./build directory # Author: Fulup Ar Foll (IoT.bzh) # Reference: https://blog.flameeyes.eu/2010/02/remote-debugging-with-gdb-part-2-gdb/ +# +# Warning: In remote native mode netbeans impose debug-command to point on a local instance of afb-daemon binary -# Start gdbserver on target and connect through SSH link -target remote | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null @RSYNC_TARGET@ gdbserver - afb-daemon --port=@AFB_REMPORT@ --workdir=@RSYNC_PREFIX@/@PROJECT_NAME@ --roothttp=./htdocs --ldpaths=./lib --verbose --token=@AFB_TOKEN@ +# Fulup Hoops: --ldpath should be absolute as solib-search-path refuse to work as documented + +# Start gdbserver on target and connect through SSH link WARNING: +target remote | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null @RSYNC_TARGET@ gdbserver - afb-daemon --port=@AFB_REMPORT@ --workdir=$HOME/@RSYNC_PREFIX@/@PROJECT_NAME@ --roothttp=htdocs --ldpaths=$HOME/@RSYNC_PREFIX@/@PROJECT_NAME@/lib --verbose --token=@AFB_TOKEN@ # Disable auto answer no on questions and to set breakpoint set confirm off @@ -14,10 +18,7 @@ set confirm off set auto-solib-add off # Define path for project libraries -set solib-search-path $ENV{PROJECT_DIR}/build/@PKGOUT_DIR@/lib - -# Path substitution for source file names -set substitute-path @CMAKE_CURRENT_SOURCE_DIR@ $ENV{PROJECT_DIR} +set solib-search-path ${PROJECT_PKG_BUILD_DIR} # Replace run by continue (gdb use 'run' when gdbserver wants 'continue') define run @@ -25,8 +26,10 @@ continue end # Manually load project libraries when loaded by afb-daemon -break execute_command +tbreak @GDB_INITIAL_BREAK@ commands -sharedlibrary @BINDINGS_REGEX@ +sharedlibrary @RSYNC_PREFIX@/@PROJECT_NAME@ continue end + + |