DBUS dbus_pending_call_steal_reply утверждение - PullRequest
0 голосов
/ 28 февраля 2019

Я получаю подтверждение dbus и аварийное завершение приложения во время инициализации DBUS.

Ниже приведен мой фрагмент кода для получения dbus.

px_sess_ctxt->px_bus = dbus_g_bus_get (DBUS_BUS_SESSION, &ppx_error);
if (NULL == px_sess_ctxt->px_bus)
   {
     return ERROR_1;
   }

   px_bus_proxy = dbus_g_proxy_new_for_name (px_sess_ctxt->px_bus,
                     PROXY_NAME, PROXY_PATH,PROXY_INTERFACE_NAME);
   if (NULL == px_bus_proxy)
   {
      return ERROR_2;
   }
dbus_g_proxy_call (px_bus_proxy, "pingMethod", &ppx_error,
                   G_TYPE_STRING, svc_name,G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_UINT, &ui_ret, G_TYPE_INVALID);

Случайно я получаю деньги за сегментациюсопровождаемый dbus_g_proxy_call () терпит неудачу.ниже приведена ошибка, которую я получаю при сбое вызова прокси-сервера.

process 1559: arguments to dbus_pending_call_steal_reply() were incorrect, assertion "pending->reply != NULL" failed in file dbus-pending-call.c line 715.
 This is normally a bug in some application using the D-Bus library.
   D-Bus not built with -rdynamic so unable to print a backtrace

Пожалуйста, дайте знать о любых проблемах, возникающих в библиотеках dbus-glib.Это было бы очень полезно.

Спасибо

1 Ответ

0 голосов
/ 01 марта 2019

Как вы обнаружили, привязки клиента dbus-glib к D-Bus сложны в использовании.Они устарели и не поддерживаются, и настоятельно рекомендуется не использовать их.

См. этот вопрос для обсуждения альтернативных привязок клиента для использования.Если вы уже используете GLib в своем проекте, тогда очевидным выбором будет GDBus (часть GIO, которая является частью GLib).

...