mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-23 05:31:32 +00:00
Fix abort and _abort to be different
This commit is contained in:
@ -33,7 +33,7 @@ pub fn ___cxa_rethrow_primary_exception(_ctx: &mut Ctx, _a: u32) {
|
|||||||
pub fn ___cxa_throw(ctx: &mut Ctx, _ptr: u32, _ty: u32, _destructor: u32) {
|
pub fn ___cxa_throw(ctx: &mut Ctx, _ptr: u32, _ty: u32, _destructor: u32) {
|
||||||
debug!("emscripten::___cxa_throw");
|
debug!("emscripten::___cxa_throw");
|
||||||
eprintln!("Throwing exceptions not yet implemented: aborting!");
|
eprintln!("Throwing exceptions not yet implemented: aborting!");
|
||||||
_abort(ctx, 0);
|
_abort(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ___cxa_begin_catch(_ctx: &mut Ctx, _exception_object_ptr: u32) -> i32 {
|
pub fn ___cxa_begin_catch(_ctx: &mut Ctx, _exception_object_ptr: u32) -> i32 {
|
||||||
|
@ -731,7 +731,7 @@ pub fn generate_emscripten_env(globals: &mut EmscriptenGlobals) -> ImportObject
|
|||||||
"___syscall345" => func!(crate::syscalls::___syscall345),
|
"___syscall345" => func!(crate::syscalls::___syscall345),
|
||||||
|
|
||||||
// Process
|
// Process
|
||||||
"abort" => func!(crate::process::_abort),
|
"abort" => func!(crate::process::em_abort),
|
||||||
"_abort" => func!(crate::process::_abort),
|
"_abort" => func!(crate::process::_abort),
|
||||||
"_prctl" => func!(crate::process::_prctl),
|
"_prctl" => func!(crate::process::_prctl),
|
||||||
"abortStackOverflow" => func!(crate::process::abort_stack_overflow),
|
"abortStackOverflow" => func!(crate::process::abort_stack_overflow),
|
||||||
|
@ -10,14 +10,18 @@ use wasmer_runtime_core::vm::Ctx;
|
|||||||
pub fn abort_with_message(ctx: &mut Ctx, message: &str) {
|
pub fn abort_with_message(ctx: &mut Ctx, message: &str) {
|
||||||
debug!("emscripten::abort_with_message");
|
debug!("emscripten::abort_with_message");
|
||||||
println!("{}", message);
|
println!("{}", message);
|
||||||
_abort(ctx, 0);
|
_abort(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn _abort(_ctx: &mut Ctx, arg: u32) {
|
/// The name of this call is `abort` but we want to avoid conflicts with libc::abort
|
||||||
debug!("emscripten::_abort");
|
pub fn em_abort(ctx: &mut Ctx, arg: u32) {
|
||||||
if arg != 0 {
|
debug!("emscripten::abort");
|
||||||
eprintln!("Program aborted with value {}", arg);
|
eprintln!("Program aborted with value {}", arg);
|
||||||
|
_abort(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn _abort(_ctx: &mut Ctx) {
|
||||||
|
debug!("emscripten::_abort");
|
||||||
unsafe {
|
unsafe {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user