Skip to content

Commit 73675dc

Browse files
committed
builtin: move v_segmentation_fault_handler to builtin.c.v, make it more informative
1 parent fdbd40d commit 73675dc

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

vlib/builtin/builtin.c.v

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,21 @@ fn vhalt() {
1111
for {}
1212
}
1313

14+
[markused]
15+
fn v_segmentation_fault_handler(signal_number int) {
16+
$if freestanding {
17+
eprintln('signal 11: segmentation fault')
18+
} $else {
19+
C.fprintf(C.stderr, c'signal %d: segmentation fault\n', signal_number)
20+
}
21+
$if use_libbacktrace ? {
22+
eprint_libbacktrace(1)
23+
} $else {
24+
print_backtrace()
25+
}
26+
exit(128 + signal_number)
27+
}
28+
1429
// exit terminates execution immediately and returns exit `code` to the shell.
1530
[noreturn]
1631
pub fn exit(code int) {

vlib/builtin/builtin.v

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,3 @@ pub:
133133
arg string
134134
kind AttributeKind
135135
}
136-
137-
[markused]
138-
fn v_segmentation_fault_handler(signal int) {
139-
eprintln('signal 11: segmentation fault')
140-
$if use_libbacktrace ? {
141-
eprint_libbacktrace(1)
142-
} $else {
143-
print_backtrace()
144-
}
145-
exit(128 + 11)
146-
}

0 commit comments

Comments
 (0)