diff --git a/Makefile b/Makefile
index f0a0ebd3eb6ca31471dbef1f4e614d735cc60df9..220c0c8a4a6b6f695e3fd8f61c6f883b0ee465ab 100644
--- a/Makefile
+++ b/Makefile
@@ -187,8 +187,8 @@ CC_ubsan = clang
 CXX_ubsan = clang++
 LD_ubsan = clang
 LDXX_ubsan = clang++
-CPPFLAGS_ubsan = -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
-LDFLAGS_ubsan = -fsanitize=undefined
+CPPFLAGS_ubsan = -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
+LDFLAGS_ubsan = -fsanitize=undefined,unsigned-integer-overflow
 DEFINES_ubsan = NDEBUG
 DEFINES_ubsan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=1.5
 
diff --git a/build.yaml b/build.yaml
index 187eb9ca8c6cd0d4e35cf118433f3b6928d92a4f..acf630593da05043373a65898c3a5052090455cc 100644
--- a/build.yaml
+++ b/build.yaml
@@ -3255,14 +3255,16 @@ configs:
     timeout_multiplier: 5
   ubsan:
     CC: clang
-    CPPFLAGS: -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer
-      -Wno-unused-command-line-argument
+    CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=undefined,unsigned-integer-overflow
+      -fno-omit-frame-pointer -Wno-unused-command-line-argument -Wvarargs
     CXX: clang++
     DEFINES: NDEBUG
     LD: clang
-    LDFLAGS: -fsanitize=undefined
+    LDFLAGS: -fsanitize=undefined,unsigned-integer-overflow
     LDXX: clang++
     compile_the_world: true
+    test_environ:
+      UBSAN_OPTIONS: print_stacktrace=1
     timeout_multiplier: 1.5
 defaults:
   boringssl:
diff --git a/tools/run_tests/configs.json b/tools/run_tests/configs.json
index 325e9aa92957ce5463140776ac3281dbb19605f4..bcc4118d2f3a64c553c8414b8e6923b04b10af89 100644
--- a/tools/run_tests/configs.json
+++ b/tools/run_tests/configs.json
@@ -56,6 +56,9 @@
   }, 
   {
     "config": "ubsan", 
+    "environ": {
+      "UBSAN_OPTIONS": "print_stacktrace=1"
+    }, 
     "timeout_multiplier": 1.5
   }, 
   {
diff --git a/tools/run_tests/dockerize/docker_run_tests.sh b/tools/run_tests/dockerize/docker_run_tests.sh
index 2fc66c21f56d3ec2c65141c86849f8dbdd9ad92a..8c6143d24f97802dc2cf5b7596596b5497a5a922 100755
--- a/tools/run_tests/dockerize/docker_run_tests.sh
+++ b/tools/run_tests/dockerize/docker_run_tests.sh
@@ -35,6 +35,7 @@ set -e
 
 export CONFIG=$config
 export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
+export PATH=$PATH:/usr/bin/llvm-symbolizer
 
 # Ensure that programs depending on current-user-ownership of cache directories
 # are satisfied (it's being mounted from outside the image).