diff --git a/meson.build b/meson.build
index 9ae9278ec6cfcc8f1ff7bf9a5dd7491ae45238f9..c8d619956c1af85cb85d9ea10651f1e2e3583b9b 100644
--- a/meson.build
+++ b/meson.build
@@ -418,6 +418,29 @@ if get_option('valgrind') == true
             cflags += [ __cflag ]
         endif
     endforeach
+    # flags to give more debugging output for valgrind (or gdb)
+    _gflags = [
+        'gdb3',
+        'split-dwarf',
+        'describe-dies',
+        'pubnames',
+    ]
+    foreach cflag : _gflags
+        __cflag = '-g' + cflag
+        if compiler.has_argument( __cflag )
+            cflags += [ __cflag ]
+        endif
+    endforeach
+    _fflags = [
+        'var-tracking',
+        'var-tracking-assignments',
+    ]
+    foreach cflag : _fflags
+        __cflag = '-f' + cflag
+        if compiler.has_argument( __cflag )
+            cflags += [ __cflag ]
+        endif
+    endforeach
 endif
 
 ############################################################
diff --git a/tbse b/tbse
index 2b4b0da9d022f24fb912aad99893d6f3f38fb063..a1a315da5f6b62235855e24f45e12e61c76d9d7a 100755
--- a/tbse
+++ b/tbse
@@ -2635,7 +2635,7 @@ $ORBITING_OBJECTS \
 VALGRIND_MAX_STACKFRAME=30000000
 VALGRIND_MAIN_STACKSIZE=30000000
 VALGRIND="valgrind --main-stacksize=$VALGRIND_MAIN_STACKSIZE --max-stackframe=$VALGRIND_MAX_STACKFRAME"
-VALGRIND_OPTS="--read-var-info=yes --track-origins=yes   --tool=memcheck --leak-check=full --show-reachable=yes --freelist-vol=100000000 --partial-loads-ok=no  --undef-value-errors=yes  -v --vgdb-error=1 "
+VALGRIND_OPTS="--read-var-info=yes --track-origins=yes   --tool=memcheck --leak-check=full --show-reachable=yes --freelist-vol=100000000 --partial-loads-ok=no  --undef-value-errors=yes  -v "
 if [[ ! -z "$VALGRIND_LOG" ]]; then
     VALGRIND_OPTS="$VALGRIND_OPTS --log-file=$VALGRIND_LOG"
 fi