aboutsummaryrefslogtreecommitdiffstats
path: root/vm_backtrace.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2019-06-06 09:54:29 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2019-06-19 20:39:10 +1200
commit9cb4e7725f668318d08cb79b1459a04eadf2f925 (patch)
treec93f5937dbffa39e35f9da1501f8225583307089 /vm_backtrace.c
parent5855af73b8d7233bcdb18b6dda5c0058cbc315bf (diff)
downloadruby-9cb4e7725f668318d08cb79b1459a04eadf2f925.tar.gz
Handle (empty) backtrace when thread is not born yet.
Diffstat (limited to 'vm_backtrace.c')
-rw-r--r--vm_backtrace.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vm_backtrace.c b/vm_backtrace.c
index bb01983a7c..4f92439478 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -451,6 +451,12 @@ backtrace_each(const rb_execution_context_t *ec,
const rb_control_frame_t *cfp;
ptrdiff_t size, i;
+ // In the case the thread vm_stack or cfp is not initialized, there is no backtrace.
+ if (start_cfp == NULL) {
+ init(arg, 0);
+ return;
+ }
+
/* <- start_cfp (end control frame)
* top frame (dummy)
* top frame (dummy)