diff --git a/require-ess/tools/iocsh_functions.bash b/require-ess/tools/iocsh_functions.bash
index b4f8e1ab000ea8ad7e31d1b6a90eeee6ac10bdd9..e71c276c75ae8ffbf3f9fc0c1f3a1a71bfa85c1e 100644
--- a/require-ess/tools/iocsh_functions.bash
+++ b/require-ess/tools/iocsh_functions.bash
@@ -330,12 +330,30 @@ function loadFiles() {
         EPICS_DRIVER_PATH="$add_path:$EPICS_DRIVER_PATH"
         ;;
       -dg)
-        shift
-        __LOADER__="gdb --eval-command run --args "
+        if [[ -z "{2%--dgarg=*}" ]]; then
+           shift
+           if [[ -z "${1#*=}" ]]; then
+              __LOADER__="gdb --eval-command run --args "
+           else
+              __LOADER__="gdb ${1#*=} "
+            fi
+        else
+            printf "Wrong option format!"
+            help
+        fi
         ;;
       -dv)
-        shift
-        __LOADER__="valgrind --leak-check=full "
+        if [[ -z "${2%--dvarg=*}" ]]; then
+           shift
+           if [[ -z "${1#*=}" ]]; then
+              __LOADER__="valgrind --leak-check=full "
+           else
+              __LOADER__="valgrind ${1#*=} "
+           fi
+        else
+           printf "Wrong option format!"
+           help
+        fi
         ;;
       -n)
         __LOADER__="nice --10 "
@@ -344,7 +362,6 @@ function loadFiles() {
       -*)
         printf "Unknown option %s\n\n" "$1" >&2
         help
-        exit 1
         ;;
       *.so)
         echo "dlload \"$file\""
@@ -432,8 +449,8 @@ function help() {
     printf "                   (Also -noinit, --noinit)\n"
     printf "  -r module[,ver]  Module (optionally with version) loaded via 'require'.\n"
     printf "  -l 'cell path'   Run Ioc with a cell path.\n"
-    printf "  -dg              Run with debugger gdb.\n"
-    printf "  -dv              Run with valgrind.\n"
+    printf "  -dg --dgarg='gdb-options'          Run with debugger gdb with user selected options.\n"
+    printf "  -dv --dvarg='valgrind-options'     Run with valgrind with user selected options.\n"
     printf "  -n               Run with 'nice --10' (requires sudo).\n"
     printf "  @file            More arguments are read from file.\n\n"
     printf "Supported filetypes:\n\n"
@@ -449,7 +466,11 @@ function help() {
     printf "  iocsh.bash my_database.template P=XY M=3\n"
     printf "  iocsh.bash -r my_module,version -c 'initModule()'\n"
     printf "  iocsh.bash -c 'var requireDebug 1' st.cmd\n"
-    printf "  iocsh.bash -i st.cmd\n\n"
+    printf "  iocsh.bash -i st.cmd\n"
+    printf "  iocsh.bash -dv --dvarg='--vgdb=full'\n"
+    printf "                 --dvarg=''  equal to --dvarg='--leak-check=full'\n"
+    printf "  iocsh.bash -dg --dgarg='--return-child-result'\n"
+    printf "                 --dgarg=''  equal to --dgarg='--eval-command run --args'\n\n"
 
   } >&2
   exit