#!/bin/sh

set -eu

bbdbg_help() {
  /bin/echo -e "NAME"
  /bin/echo -e "\tbbdbg - debug applications in a target environment built by bitbake"
  /bin/echo -e
  /bin/echo -e "SYNOPSIS"
  /bin/echo -e "\tbbdbg PATH FILE CORE PACKAGES"
  /bin/echo -e
  /bin/echo -e "DESCRIPTION"
  /bin/echo -e "\tPATH is the path to the root of a bitbake build directory"
  /bin/echo -e "\tFILE is the absolute path to the binary of interest in the target environment"
  /bin/echo -e "\tCORE is an optional core file generated by FILE. Pass '-' for no core file"
  /bin/echo -e "\tPACKAGES will be used to populate a temporary rootfs for debugging FILE"
  /bin/echo -e
  /bin/echo -e "EXAMPLE"
  /bin/echo -e "\tbbdbg ~/src/openbmc/openbmc/build/p10bmc \\"
  /bin/echo -e "\t\t/usr/bin/nvmesensor - \\"
  /bin/echo -e "\t\tdbus-sensors dbus-sensors-dbg"
}

trap bbdbg_help EXIT

BBDBG_PATH=$1; shift
BBDBG_FILE=$1; shift
BBDBG_CORE=$1; shift
BBDBG_PKGS=$@

BBDBG_ROOT=$(mktemp -t --directory bbdbg.XXX)
BBDBG_LIBS=${BBDBG_PATH}/tmp/sysroots-components/$(uname -m)/libsolv-native/usr/lib
BBDBG_OPKG=${BBDBG_PATH}/tmp/sysroots-components/$(uname -m)/opkg-native/usr/bin/opkg
BBDBG_CONF=$(find ${BBDBG_PATH}/tmp/work/*/obmc-phosphor-image -name opkg.conf -exec grep -lE ^src \{\} \;)

bbdbg_cleanup() {
  rm -rf "$BBDBG_ROOT"
}

trap bbdbg_cleanup EXIT

bbdbg_opkg() {
  LD_LIBRARY_PATH=${BBDBG_LIBS} $BBDBG_OPKG -V0 -f $BBDBG_CONF -o $BBDBG_ROOT $@
}

set -x
bbdbg_opkg update
bbdbg_opkg install $BBDBG_PKGS
gdb-multiarch -q \
  -iex "set solib-absolute-prefix $BBDBG_ROOT" \
  -iex "add-auto-load-safe-path $BBDBG_ROOT" \
  -iex "set directories $BBDBG_ROOT" \
  ${BBDBG_ROOT}${BBDBG_FILE} \
  $([ '-' = "${BBDBG_CORE}" ] || echo ${BBDBG_CORE})
set +x
