嘗試存取「設定」中的「使用者」時發生段錯誤

嘗試存取「設定」中的「使用者」時發生段錯誤

我遇到了一個我似乎無法弄清楚的問題。我能夠以 root 使用者身分打開設定就好了。當我單擊“用戶”時,沒有任何反應。我在 Linux kali 4.7.0-kali1-amd64 #1 SMP Debian 4.7.6-1kali1 (2016-10-17) x86_64 GNU/Linux 上運行。這是我在 /var/log/syslog 中得到的內容

Oct 27 21:00:09 kali kernel: [ 695.533180] gnome-control-c[1944]: segfault at 0 ip 00000000004c9a5d sp 00007fffae418480 error 4 in gnome-control-center[400000+394000]

我嘗試運行命令: addr2line -e /usr/bin/gnome-control-center -fCi 0xC9A5D其中 0xC9A5d 是導致問題的物件的偏移量,但我什麼也沒得到。

然後我跑了: addr2line -e /usr/bin/gnome-control-center -fCi 0x00000000004c9a5d然後我得到:

cc_universal_access_get_resource ??:?

有趣的...

據我所知,造成這種情況的原因是用戶模式指令導致頁面錯誤。我在這裡列出了幾個有興趣的 gnome-control-center 檔案:

/usr/share/bash-completion/completions/gnome-control-center

/usr/bin/gnome 控制中心

我懷疑問題出在作為製表符完成的 shell 腳本列出的第一個檔案。所以我嘗試在二進位上運行 gdb,但它似乎沒有通過調試進行編譯,因為沒有找到任何調試符號。這樣做的全部目的是嘗試創建一個新用戶,這樣我就可以在 Kali 上安裝 steam,在業餘時間玩一些遊戲,除了搞亂這個該死的系統哈哈。

當我看著吉圖布對於 gnome 控制中心。我找到了 cc_ua_panel.c 檔。它有一個方法,我在其中找到了對 cc_universal_access_get_resource 的調用,如下所示。

static void
cc_ua_panel_init (CcUaPanel *self)
{
  CcUaPanelPrivate *priv;
  GtkWidget *panel;
  GtkWidget *content;

  priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
                                                   CC_TYPE_UA_PANEL,
                                                   CcUaPanelPrivate);

  g_resources_register (cc_universal_access_get_resource ());

  priv->interface_settings = g_settings_new (INTERFACE_SETTINGS);
  priv->a11y_settings = g_settings_new (A11Y_SETTINGS);
  priv->wm_settings = g_settings_new (WM_SETTINGS);
  priv->kb_settings = g_settings_new (KEYBOARD_SETTINGS);
  priv->kb_desktop_settings = g_settings_new (KEYBOARD_DESKTOP_SETTINGS);
  priv->mouse_settings = g_settings_new (MOUSE_SETTINGS);
  priv->gsd_mouse_settings = g_settings_new (GSD_MOUSE_SETTINGS);
  priv->application_settings = g_settings_new (APPLICATION_SETTINGS);

  priv->builder = gtk_builder_new ();
  gtk_builder_add_from_resource (priv->builder,

                                 "/org/gnome/control-center/universal-access/uap.ui",
                                 NULL);

  cc_ua_panel_init_status (self);
  cc_ua_panel_init_seeing (self);
  cc_ua_panel_init_hearing (self);
  cc_ua_panel_init_keyboard (self);
  cc_ua_panel_init_mouse (self);

  panel = WID ("universal_access_panel");
  content = WID ("universal_access_content");

  gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (panel), SCROLL_HEIGHT);

  priv->focus_adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (panel));
  gtk_container_set_focus_vadjustment (GTK_CONTAINER (content), priv->focus_adjustment);

  gtk_container_add (GTK_CONTAINER (self), panel);
}

我不知道這裡的問題可能是什麼,如果這確實是問題並且不知道如何繼續。我想知道它正在尋找什麼資源以及為什麼不存在。我在哪裡可以找到這個以及如何解決這個問題?

我實際上已經獲得了回溯

    Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault.
0x00000000004c9a5d in ?? ()
(gdb) bt full
#0  0x00000000004c9a5d in ?? ()
No symbol table info available.
#1  0x00007ffff0b74f75 in g_closure_invoke ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#2  0x00007ffff0b86f82 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#3  0x00007ffff0b8fbcc in g_signal_emit_valist ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#4  0x00007ffff0b8ffaf in g_signal_emit ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#5  0x00007ffff0b793a4 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6  0x00007ffff0b7b861 in g_object_notify ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7  0x00007ffff58587e2 in ?? () from /usr/lib/libaccountsservice.so.0
No symbol table info available.
#8  0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
---Type <return> to continue, or q <return> to quit---return
No symbol table info available.
#9  0x00007ffff0e42b96 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#10 0x00007ffff0e80a5b in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#11 0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#12 0x00007ffff0e42b96 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#13 0x00007ffff0e7568a in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#14 0x00007ffff0e424e3 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#15 0x00007ffff0e42519 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#16 0x00007ffff089b68a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#17 0x00007ffff089ba40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#18 0x00007ffff089baec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff0e5770d in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#20 0x000000000044cff7 in main ()
No symbol table info available.

答案1

我無法以 root 身分開啟使用者設定。 (真的,在全新安裝上。)我所要做的就是鍵入useradd tempuser1,然後重新打開用戶設定!我猜我的段落發生是因為「沒有使用者」(因為 root 不算)。

我使用的是最新版本的 Kali。

相關內容