Ciro Santilli
2018-08-12 17:54:42 UTC
I've noticed that as of ff52563a214c71fcd1e21e9f00ad839612032e3b, when
there is a kernel panic, and I hack fs.py to set `system.panic_on_panic`
with:
diff --git a/configs/example/fs.py b/configs/example/fs.py
index 4031fd05e..0f502a34a 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -395,5 +395,6 @@ if buildEnv['TARGET_ISA'] == "arm" and
options.generate_dtb:
sys = getattr(root, sysname)
sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' %
sysname)
+test_sys.panic_on_panic = True
Simulation.setWorkCountOptions(test_sys, options)
Simulation.run(options, root, test_sys, FutureClass)
I get the stack trace at then end:
--- BEGIN LIBC BACKTRACE ---
but the exit status is 0 and not 1.
The code path calls panic(), which calls ::abort(), but then it seems that
the abort handler that prints the backtrace returns 0 instead of 1.
Is this desired behavior?
It matters because exit status of 1 makes it easier to git bisect run,
which is super important to have.
Now I'm parsing logs to determine if an error happened, which is nasty.
there is a kernel panic, and I hack fs.py to set `system.panic_on_panic`
with:
diff --git a/configs/example/fs.py b/configs/example/fs.py
index 4031fd05e..0f502a34a 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -395,5 +395,6 @@ if buildEnv['TARGET_ISA'] == "arm" and
options.generate_dtb:
sys = getattr(root, sysname)
sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' %
sysname)
+test_sys.panic_on_panic = True
Simulation.setWorkCountOptions(test_sys, options)
Simulation.run(options, root, test_sys, FutureClass)
I get the stack trace at then end:
--- BEGIN LIBC BACKTRACE ---
but the exit status is 0 and not 1.
The code path calls panic(), which calls ::abort(), but then it seems that
the abort handler that prints the backtrace returns 0 instead of 1.
Is this desired behavior?
It matters because exit status of 1 makes it easier to git bisect run,
which is super important to have.
Now I'm parsing logs to determine if an error happened, which is nasty.