aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorJohannes Stoelp <johannes.stoelp@gmail.com>2024-11-09 11:40:55 +0100
committerJohannes Stoelp <johannes.stoelp@gmail.com>2024-11-09 11:40:55 +0100
commitcec6cc310a499c8f5659052b70eb0211bccb109f (patch)
tree14a71f830315a1bc278e9f631bac6fc8cb598a31 /src
parent8c7f8b75acf4eb4fc0e8d606cffa4bcdae865606 (diff)
downloadnotes-cec6cc310a499c8f5659052b70eb0211bccb109f.tar.gz
notes-cec6cc310a499c8f5659052b70eb0211bccb109f.zip
gdb: trace-commands, exec-wrapper
Diffstat (limited to 'src')
-rw-r--r--src/debug/gdb.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/debug/gdb.md b/src/debug/gdb.md
index 41d26f7..61bc9dd 100644
--- a/src/debug/gdb.md
+++ b/src/debug/gdb.md
@@ -258,11 +258,18 @@ thread name <name>
on: Truncate log file on each run.
off: Append to logfile (default).
+ set trace-commands <on | off>
+ on: Echo comamands executed (good with logging).
+ off: Do not echo commands executedt (default).
+
set history filename <fname>
Change file where to save and restore command history to and from.
set history <on | off>
Enable or disable saving of command history.
+
+ set exec-wrapper <cli>
+ Set an exec wrapper which sets up the env and execs the debugee.
```
> Logging options should be configured before logging is turned on.
@@ -505,4 +512,34 @@ executed. To workaround that bug one can create a wrapper function which calls
end
```
+## Launch debuggee through an exec wrapper
+```markdown
+> cat test.c
+#include <stdio.h>
+#include <stdlib.h>
+
+int main() {
+ const char* env = getenv("MOOSE");
+ printf("$MOOSE=%s\n", env ? env : "<nullptr>");
+}
+
+> cat test.sh
+#!/bin/bash
+
+echo "running test.sh wapper"
+export MOOSE=moose
+exec ./test
+
+> gcc -g -o test test.c
+
+> gdb test
+(gdb) r
+$MOOSE=<nullptr>
+
+(gdb) set exec-wrapper bash test.sh
+(gdb) r
+running test.sh wapper
+$MOOSE=moose
+```
+
[gdb-convenience-vars]: https://sourceware.org/gdb/onlinedocs/gdb/Convenience-Vars.html#Convenience-Vars