Fixed target-populate dependencies and update native-remote debug
authorFulup Ar Foll <fulup@iot.bzh>
Mon, 31 Jul 2017 16:36:42 +0000 (18:36 +0200)
committerFulup Ar Foll <fulup@iot.bzh>
Mon, 31 Jul 2017 16:54:45 +0000 (18:54 +0200)
Change-Id: Ia041caa86dd57af48ae6ee53f26fb0be86f95e88
Signed-off-by: Fulup Ar Foll <fulup@iot.bzh>
cmake/cmake.d/01-variables.cmake
cmake/cmake.d/02-macros.cmake
gdb/gdb-native-target.ini.in [moved from gdb/gdb-on-target.ini.in with 58% similarity]

index 3891f53..a06c537 100644 (file)
@@ -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
index 5f8e5fa..8cb0e45 100644 (file)
@@ -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
similarity index 58%
rename from gdb/gdb-on-target.ini.in
rename to gdb/gdb-native-target.ini.in
index 52a33e2..1ba6bdb 100644 (file)
@@ -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
+
+