summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2017-07-31 18:36:42 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2018-10-15 18:22:47 +0200
commitb5bc6ff322112503b038f564ee44ccfce8f1fd05 (patch)
tree5ab830e69684e2cb8118eec9fb0021df6eed2da8
parent3f449fe50c289fb339f758dfcdafcd054f7f7a3d (diff)
Fixed target-populate dependencies and update native-remote debug
Change-Id: Ia041caa86dd57af48ae6ee53f26fb0be86f95e88 Signed-off-by: Fulup Ar Foll <fulup@iot.bzh>
-rw-r--r--cmake/cmake.d/01-variables.cmake3
-rw-r--r--cmake/cmake.d/02-macros.cmake7
-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
+
+