mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
bc6ee34c97
This will help with debugging by providing system wide access to per-process ring buffers with debug data. Signed-off-by: Felix Fietkau <nbd@nbd.name>
56 lines
962 B
Bash
Executable File
56 lines
962 B
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (c) 2021 OpenWrt.org
|
|
|
|
START=11
|
|
|
|
USE_PROCD=1
|
|
PROG=/usr/sbin/udebugd
|
|
|
|
start_service() {
|
|
procd_open_instance
|
|
procd_set_param command "$PROG"
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
get_vars() {
|
|
local cfg="$1"
|
|
uci show "udebug.$cfg" | while read LINE; do
|
|
cur="${LINE##udebug.$1.}"
|
|
[[ "$cur" = "$LINE" ]] && continue
|
|
var="${cur%%=*}"
|
|
[[ "$cur" = "$var" ]] && continue
|
|
echo "$var"
|
|
done
|
|
}
|
|
|
|
add_debug_service() {
|
|
local cfg="$1"
|
|
|
|
json_add_object "$cfg"
|
|
for var in $(get_vars "$cfg"); do
|
|
config_get val "$cfg" "$var"
|
|
json_add_string "$var" "$val"
|
|
done
|
|
json_close_object "$cfg"
|
|
}
|
|
|
|
reload_service() {
|
|
config_load udebug
|
|
|
|
json_init
|
|
json_add_object service
|
|
config_foreach add_debug_service service
|
|
json_close_object
|
|
ubus call udebug set_config "$(json_dump)"
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger udebug
|
|
}
|
|
|
|
service_started() {
|
|
ubus -t 10 wait_for udebug
|
|
[ $? = 0 ] && reload_service
|
|
}
|