zx_thread_raise_exception

摘要

引发用户生成的异常。

声明

#include <zircon/syscalls.h>

zx_status_t zx_thread_raise_exception(uint32_t options,
                                      zx_excp_type_t type,
                                      const zx_exception_context_t* context);

说明

zx_thread_raise_exception() 会引发用户生成的异常。该异常将传递到与当前线程关联的异常通道。

目前,options 实参必须是 ZX_EXCEPTION_TARGET_JOB_DEBUGGER,这会导致异常传递到作业调试器异常通道。 未来,options 可能会扩展,以支持面向其他类型的异常通道。

type 实参必须是 ZX_EXCP_USER。未来,type 可能会扩展,以支持引发其他类型的异常。

zx_exception_context_t 中的 arch 字段会被忽略。请改用 synth_codesynth_data 字段来传递有关异常的信息。 小于 ZX_EXCP_USER_CODE_USER0 的代码保留供系统定义用途。 应用可以使用大于或等于 ZX_EXCP_USER_CODE_USER0 的代码来实现自己的目的。

返回值

如果成功,zx_thread_raise_exception() 会返回 ZX_OK。如果失败,则返回负错误值。

错误

ZX_ERR_INVALID_ARGS optionsZX_EXCEPTION_TARGET_JOB_DEBUGGER 以外的值,typeZX_EXCP_USER 以外的值,或者 context 是无效指针。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有很好的方法来处理此(不太可能发生的)错误。 在未来的 build 中,此错误将不再发生。

另请参阅