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的提示内容,并没有什么大的影响,但是出于安全性和美观方面的考虑,小弟还是想把这个东西去掉. 那么,怎么办 ...
随机推荐
- 数独c++
#include <bits/stdc++.h> using namespace std; const int maxn = 10; bool maps[maxn][maxn], row[ ...
- 3.4 Go字符型
1. Go字符型 Golang 中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存. 普通字符串就是一串固定长度的字符连接起来的字符序列. Go 的字符串是由单个字节连接起来 ...
- MySQL slave状态之Seconds_Behind_Master zz
在MySQL的主从环境中,我们可以通过在slave上执行show slave status来查看slave的一些状态信息,其中有一个比较重要的参数Seconds_Behind_Master.那么你是否 ...
- Java并发包5--同步工具CountDownLatch、CyclicBarrier、Semaphore的实现原理解析
前言: JUC中提供了很多同步工具类,比如CountDownLatch.CyclicBarrier.Semaphore等,都可以作用同步手段来实现多线程之间的同步效果 一.CountDownLatch ...
- 洛谷P2754 [CTSC1999]家园
题目链接:https://www.luogu.org/problemnew/show/P2754 知识点: 最大流 解题思路: 先用 \(DFS\) 判断是否无解. 从时刻 \(0\) 开始枚举答案, ...
- 二、第一个C程序:Hello World!
如何在Dev C++中编辑.编译和运行程序? 一.打开Dev C++ 二.在上面编辑窗口中输入以下代码 #include<stdio.h> int main() { printf(&quo ...
- .Net基础之3——运算符
(3)Convert类型转换 1.类型如果相兼容的两个变量,可以使用自动类型转换或者显示类型转换. 但是如果两个类型的变量不兼容,这个时候可以使用一个叫做Convert的转换工厂进行转换. 注意:使用 ...
- Spring全家桶——SpringBoot渐入佳境
Spring全家桶系列--SpringBoot渐入佳境 萌新:小哥,我在实体类写了那么多get/set方法,看着很迷茫 小哥:那不是可以自动生成吗? 萌新:虽然可以自动生成,但是如果我要修改某个变量的 ...
- PHP文件上传案例和函数
$_FILES参数详解: $_FILES["file"]["name"] – 被上传文件的名称 $_FILES["file"][" ...
- Java 14 祭出代码简化大器,Lombok 要被干掉了?
Java 14 3 月发布距现在已经发布 2 个多月,发布了很多新特性,详细的新特性介绍可以看这篇文章: http://www.javastack.cn/article/2020/java14-has ...