summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci.debugger/scripts/break022/break022.script
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/ghci.debugger/scripts/break022/break022.script')
-rw-r--r--testsuite/tests/ghci.debugger/scripts/break022/break022.script20
1 files changed, 20 insertions, 0 deletions
diff --git a/testsuite/tests/ghci.debugger/scripts/break022/break022.script b/testsuite/tests/ghci.debugger/scripts/break022/break022.script
new file mode 100644
index 0000000000..e0aaeda371
--- /dev/null
+++ b/testsuite/tests/ghci.debugger/scripts/break022/break022.script
@@ -0,0 +1,20 @@
+
+-- We have this structure of modules:
+
+-- A (imports B.boot)
+-- B (imports A)
+-- B.boot (imports A)
+-- C (imports A and B)
+
+-- And we load C, to debug some function in A which enters B.
+-- But first we touch A, and reload. B.boot will be reloaded, but not B, which will end up with an empty modbreaks. When we :step into B, ghci will die with an out of bounds access in B's break array.
+-- The effect we want is B.boot being reloaded while B is not.
+
+:l C
+:! touch A.hs
+:r
+:break a
+a ()
+:st
+:st
+:st -- here we step into B, and produce the exception \ No newline at end of file