Error reporting for dbus
D-Bus 1.13.14
Data Structures | Typedefs | Functions
Error reporting
Error reporting. More...
| Data Structures | |
|---|---|
| struct | DBusError |
| Object representing an exception. More... | |
| Typedefs | |
|---|---|
| typedef struct DBusError | DBusError |
| Mostly-opaque type representing an error that occurred. | |
| Functions | |
|---|---|
| void | dbus_error_init (DBusError *error) |
| Initializes a DBusError structure. More... | |
| void | dbus_error_free (DBusError *error) |
| Frees an error that's been set (or just initialized), then reinitializes the error as in dbus_error_init(). More... | |
| void | dbus_set_error_const (DBusError *error, const char *name, const char *message) |
| Assigns an error name and message to a DBusError. More... | |
| void | dbus_move_error (DBusError *src, DBusError *dest) |
| Moves an error src into dest, freeing src and overwriting dest. More... | |
| dbus_bool_t | dbus_error_has_name (const DBusError *error, const char *name) |
| Checks whether the error is set and has the given name. More... | |
| dbus_bool_t | dbus_error_is_set (const DBusError *error) |
| Checks whether an error occurred (the error is set). More... | |
| void | dbus_set_error (DBusError *error, const char *name, const char *format,...) |
| Assigns an error name and message to a DBusError. More... | |
| void | _dbus_set_error_valist (DBusError *error, const char *name, const char *format, va_list args) |
Detailed Description
Error reporting.
Types and functions related to reporting errors.
In essence D-Bus error reporting works as follows:
DBusError error;
dbus_error_init (&error);
dbus_some_function (arg1, arg2, &error);
if (dbus_error_is_set (&error))
{
fprintf (stderr, "an error occurred: %s\n", error.message);
dbus_error_free (&error);
}
By convention, all functions allow NULL instead of a DBusError*, so callers who don't care about the error can ignore it.
There are some rules. An error passed to a D-Bus function must always be unset; you can't pass in an error that's already set. If a function has a return code indicating whether an error occurred, and also a DBusError parameter, then the error will always be set if and only if the return code indicates an error occurred. i.e. the return code and the error are never going to disagree.
An error only needs to be freed if it's been set, not if it's merely been initialized.
You can check the specific error that occurred using dbus_error_has_name().
Errors will not be set for programming errors, such as passing invalid arguments to the libdbus API. Instead, libdbus will print warnings, exit on a failed assertion, or even crash in those cases (in other words, incorrect use of the API results in undefined behavior, possibly accompanied by helpful debugging output if you're lucky).
Function Documentation
◆dbus_error_free()
| DBUS_EXPORT void dbus_error_free | ( | DBusError * | error | ) | |
|---|---|---|---|---|---|
Frees an error that's been set (or just initialized), then reinitializes the error as in dbus_error_init().
Parameters
errormemory where the error is stored.
Definition at line 211 of file dbus-errors.c.
References DBusRealError::const_message, dbus_error_init(), dbus_free(), DBusRealError::message, DBusRealError::name, and NULL.
Referenced by _dbus_generate_uuid(), _dbus_read_local_machine_uuid(), dbus_get_local_machine_id(), and dbus_move_error().
◆dbus_error_has_name()
| DBUS_EXPORT dbus_bool_t dbus_error_has_name | ( | const DBusError * | error, |
|---|---|---|---|
| const char * | name | ||
| ) |
Checks whether the error is set and has the given name.
Parameters
errorthe error namethe name
Returns
TRUE if the given named error occurred
Definition at line 302 of file dbus-errors.c.
References _dbus_assert, _dbus_string_equal(), _dbus_string_init_const(), FALSE, DBusError::message, DBusError::name, and NULL.
Referenced by dbus_get_local_machine_id().
◆dbus_error_init()
| DBUS_EXPORT void dbus_error_init | ( | DBusError * | error | ) | |
|---|---|---|---|---|---|
Initializes a DBusError structure.
Does not allocate any memory; the error only needs to be freed if it is set at some point.
Parameters
errorthe DBusError.
Definition at line 188 of file dbus-errors.c.
Referenced by _dbus_generate_uuid(), _dbus_listen_tcp_socket(), dbus_error_free(), and dbus_move_error().
◆dbus_error_is_set()
| DBUS_EXPORT dbus_bool_t dbus_error_is_set | ( | const DBusError * | error | ) | |
|---|---|---|---|---|---|
Checks whether an error occurred (the error is set).
Parameters
errorthe error object
Returns
TRUE if an error occurred
Definition at line 329 of file dbus-errors.c.
References _dbus_assert, FALSE, DBusError::message, DBusError::name, and NULL.
◆dbus_move_error()
| DBUS_EXPORT void dbus_move_error | ( | DBusError * | src, |
|---|---|---|---|
| DBusError * | dest | ||
| ) |
Moves an error src into dest, freeing src and overwriting dest.
Both src and dest must be initialized. src is reinitialized to an empty error. dest may not contain an existing error. If the destination is NULL, just frees and reinits the source error.
Parameters
srcthe source error destthe destination error or NULL
Definition at line 279 of file dbus-errors.c.
References dbus_error_free(), and dbus_error_init().
◆dbus_set_error()
| DBUS_EXPORT void dbus_set_error | ( | DBusError * | error, |
|---|---|---|---|
| const char * | name, | ||
| const char * | format, | ||
| ... | |||
| ) |
Assigns an error name and message to a DBusError.
Does nothing if error is NULL.
The format may be NULL, which means a (pretty much useless) default message will be deduced from the name. This is not a good idea, just go ahead and provide a useful error message. It won't hurt you.
If no memory can be allocated for the error message, an out-of-memory error message will be set instead.
Parameters
errorthe error.or NULL namethe error name formatprintf-style format string.
Definition at line 354 of file dbus-errors.c.
References NULL.
Referenced by _dbus_babysitter_set_child_exit_error(), _dbus_become_daemon(), _dbus_change_to_daemon_user(), _dbus_check_dir_is_private_to_user(), _dbus_close(), _dbus_close_socket(), _dbus_command_for_pid(), _dbus_connect_exec(), _dbus_create_directory(), _dbus_create_file_exclusively(), _dbus_delete_directory(), _dbus_delete_file(), _dbus_directory_get_next_file(), _dbus_directory_open(), _dbus_dup(), _dbus_ensure_directory(), _dbus_file_get_contents(), _dbus_generate_random_bytes(), _dbus_generate_uuid(), _dbus_is_console_user(), _dbus_keyring_new_for_credentials(), _dbus_listen_systemd_sockets(), _dbus_listen_tcp_socket(), _dbus_lookup_launchd_socket(), _dbus_make_file_world_readable(), _dbus_message_iter_get_args_valist(), _dbus_read_local_machine_uuid(), _dbus_send_credentials_socket(), _dbus_server_listen_platform_specific(), _dbus_server_new_for_domain_socket(), _dbus_server_new_for_launchd(), _dbus_server_new_for_tcp_socket(), _dbus_set_bad_address(), _dbus_set_socket_nonblocking(), _dbus_socketpair(), _dbus_stat(), _dbus_string_save_to_file(), _dbus_transport_new_for_tcp_socket(), _dbus_transport_open_platform_specific(), _dbus_unix_user_is_at_console(), _dbus_user_database_lookup(), _dbus_user_database_lookup_group(), dbus_connection_send_with_reply_and_block(), dbus_message_demarshal(), dbus_parse_address(), dbus_set_error_from_message(), dbus_signature_validate(), dbus_signature_validate_single(), dbus_try_get_local_machine_id(), dbus_validate_bus_name(), dbus_validate_error_name(), dbus_validate_interface(), dbus_validate_member(), dbus_validate_path(), and dbus_validate_utf8().
◆dbus_set_error_const()
| DBUS_EXPORT void dbus_set_error_const | ( | DBusError * | error, |
|---|---|---|---|
| const char * | name, | ||
| const char * | message | ||
| ) |
Assigns an error name and message to a DBusError.
Does nothing if error is NULL. The message may be NULL, which means a default message will be deduced from the name. The default message will be totally useless, though, so using a NULL message is not recommended.
Because this function does not copy the error name or message, you must ensure the name and message are global data that won't be freed. You probably want dbus_set_error() instead, in most cases.
Parameters
errorthe error or NULL namethe error name (not copied!!!) messagethe error message (not copied!!!)
Definition at line 243 of file dbus-errors.c.
References _dbus_assert, DBusError::message, DBusError::name, and NULL.
Referenced by _dbus_get_autolaunch_address(), _dbus_keyring_new_for_credentials(), _dbus_listen_systemd_sockets(), and _dbus_lookup_launchd_socket().
Generated by
1.8.16
Error reporting for dbus的更多相关文章
- Eclipse Mars: How to Stop Updating Error Reporting Database
Eclipse Mars: How to Stop Updating Error Reporting Database I was using Eclise Mars version IDE.. Ev ...
- Eclipse Error Reporting Welcome to the Eclipse Error Reporting Service.Do you want to help Eclipse? Enable Disable
在开发的时候,使用Eclipse IDE,提示如下信息, 这是Eclipse的错误报告,如果不想发送,可以关闭掉,关闭方法: 选择Preferences -> General -> Err ...
- 取消Eclipse的Error Reporting
选择Preferences->General->Error Reporting,Send Mode选择Never send reports
- Reporting Services 错误案例一则
遇到一个有意思的Reporting Services报表的案例,在2015-01-30号的凌晨20分左右的时候,有人发现Reporting Services的速度非常慢,而且最后有抛出异常,当时不知道 ...
- Error Handling and Exception
The default error handling in PHP is very simple.An error message with filename, line number and a m ...
- List of 3rd Party .NET UI & Reporting Components
https://www.codeproject.com/Reference/788434/List-of-rd-Party-NET-UI-Reporting-Components Introducti ...
- possible error
1● regedit 2● path [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Windows Error Reporting] 3● 步 ...
- 错误:Eclipse老是出现 updating error reports database
Eclipse 火星版(Mars)一直出现 updating error reports database. Window--->Preferences--->General---> ...
- 关于PHP.INI中的错误ERROR报告级别设置
最近在写php的过程中发现php提示php notice:………………的字样,虽然这个只是php的提示内容,并没有什么大的影响,但是出于安全性和美观方面的考虑,小弟还是想把这个东西去掉. 那么,怎么办 ...
随机推荐
- 【雕爷学编程】Arduino动手做(59)---RS232转TTL串口模块
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...
- 5.2 Go 包与函数
5.2 Go 包与函数 在多个包中相互调用函数,需要用到Go包的知识. 代码组织如下: 思路: 1.定义功能函数calc放入到utils.go,将utils.go放在utils文件夹/包中,当其他文件 ...
- Django ORM性能优化之count和len方法的选择(非常详细推荐干货)
接下来我将从源码层面分情况和应用分析我们在计算queryset数据集时是用orm的count函数计算长度还是用len函数计算数据集长度. 首先,我们知道ORM查询queryset数据集是惰性查询的,只 ...
- Spring Bean 定义
Bean 定义 被称作 bean 的对象是构成应用程序的支柱.也是由 Spring IoC 容器管理的. bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象. 这些 bea ...
- ASCII码排序(hdu2000)
思考:字符串的输入中是不包含空格的,所以可以用scanf_s("%字符类型占位符",&变量名,整型参数)来输入字符串. 因为scanf_s()函数的输入一遇到空格就会停止输 ...
- 多线程(thread+queue 售票)
一.理解 如果线程里每从队列里取一次,但没有执行task_done(),则join无法判断队列到底有没有结束,在最后执行个join()是等不到结果的,会一直挂起.可以理解为,每task_done一次 ...
- mysql事务控制和锁定语句
MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定.默认情况下,表锁和行锁都是自动获得的,不 ...
- [Unity2d系列教程] 004.Unity如何调用ios的方法(SDK集成相关)
和上一篇类似,我们同样希望Unity能够直接调用IOS底层的代码,那么我们就需要研究怎么去实现它.下面让我来带大家看一个简单的例子 1.创建.h和.m文件如下 .h // // myTest.m // ...
- C/C++多参数函数参数的计算顺序与压栈顺序
一.前言 今天在看Thinking in C++这本书时,书中的一个例子引起了我的注意,具体是使用了下面这句 单看这条语句的语义会发现仅仅是使用一个简单的string的substr函数将所得子串pus ...
- 一文让你快速上手 Mockito 单元测试框架
前言 在计算机编程中,单元测试是一种软件测试方法,通过该方法可以测试源代码的各个单元功能是否适合使用.为代码编写单元测试有很多好处,包括可以及早的发现代码错误,促进更改,简化集成,方便代码重构以及许多 ...