설정에서 사용자에 액세스하는 동안 Segfault가 발생했습니다.

설정에서 사용자에 액세스하는 동안 Segfault가 발생했습니다.

도저히 이해할 수 없는 문제에 봉착했습니다. 루트로 설정을 열 수 있습니다. "사용자"를 클릭해도 아무 일도 일어나지 않습니다. 저는 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 제어 센터

쉘 스크립트에 의해 탭 완성으로 나열된 첫 번째 파일에 문제가 있다고 생각됩니다. 그래서 바이너리에서 gdb를 실행해 보았지만 디버그 기호가 발견되지 않아 디버그로 컴파일되지 않는 것 같습니다. 이것의 전체 목적은 새로운 사용자를 생성하여 Kali에 Steam을 설치하고 여가 시간에 게임을 플레이할 수 있도록 하는 것입니다. 게다가 빌어먹을 시스템을 망칠 수도 있습니다. 하하.

내가 볼 때지텁그놈 제어 센터의 경우. 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

루트로 사용자 설정을 열 수 없습니다. (실제로는 새로 설치한 경우입니다.) 내가 해야 할 일은 를 입력한 useradd tempuser1다음 사용자 설정을 다시 여는 것뿐이었습니다! 내 세그먼트는 "사용자 없음"(루트는 포함되지 않기 때문에)으로 인해 발생한 것 같습니다.

저는 칼리 최신 버전을 사용하고 있습니다.

관련 정보