基于Linux QT的应用程序使用IOT指令进行核心转储(core dumped)

问题描述 投票:0回答:1

环境:Ubuntu 22.04 + Deepin PPA

我的基于 qt 的应用程序正在中止,最初我以为只有 Virtualbox 被某些内核或依赖项搞乱了。然后是 deepin-screen-recorder 和 kate(我更多的是基于 GNOME 的用户,我只使用很少的基于 QT 的应用程序)。

在所有情况下,错误确实来自 SIGABRT,如下 strace 所示:

openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libxcb-util.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=31096, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 33016, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f490a98e000
mprotect(0x7f490a991000, 16384, PROT_NONE) = 0
mmap(0x7f490a991000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f490a991000
mmap(0x7f490a993000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7f490a993000
mmap(0x7f490a995000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f490a995000
close(3)                                = 0
mprotect(0x7f490a995000, 4096, PROT_READ) = 0
mprotect(0x7f490aa17000, 4096, PROT_READ) = 0
mprotect(0x7f490a9a0000, 4096, PROT_READ) = 0
mprotect(0x7f490a9ba000, 4096, PROT_READ) = 0
mprotect(0x7f490a9c8000, 4096, PROT_READ) = 0
mprotect(0x7f490a9d5000, 4096, PROT_READ) = 0
mprotect(0x7f490a9f8000, 8192, PROT_READ) = 0
mprotect(0x7f490aa1c000, 4096, PROT_READ) = 0
mprotect(0x7f490aa26000, 4096, PROT_READ) = 0
mprotect(0x7f490aa35000, 4096, PROT_READ) = 0
mprotect(0x7f490aa3c000, 4096, PROT_READ) = 0
mprotect(0x7f490aa4f000, 4096, PROT_READ) = 0
mprotect(0x7f490aa54000, 4096, PROT_READ) = 0
mprotect(0x7f490aa5a000, 4096, PROT_READ) = 0
mprotect(0x7f490aa5f000, 4096, PROT_READ) = 0
mprotect(0x7f490aa64000, 4096, PROT_READ) = 0
mprotect(0x7f490aa69000, 4096, PROT_READ) = 0
mprotect(0x7f490aa6e000, 4096, PROT_READ) = 0
mprotect(0x7f490aa78000, 4096, PROT_READ) = 0
mprotect(0x7f490aa7f000, 4096, PROT_READ) = 0
mprotect(0x7f490abf1000, 20480, PROT_READ) = 0
mprotect(0x7f490aca1000, 16384, PROT_READ) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X1"}, 20) = 0
getpeername(3, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X1"}, [124 => 20]) = 0
uname({sysname="Linux", nodename="RIO-J9NF7G3", ...}) = 0
access("/run/user/1000/gdm/Xauthority", R_OK) = 0
openat(AT_FDCWD, "/run/user/1000/gdm/Xauthority", O_RDONLY) = 4
newfstatat(4, "", {st_mode=S_IFREG|0700, st_size=110, ...}, AT_EMPTY_PATH) = 0
read(4, "\1\0\0\vRIO-J9NF7G3\0\0\0\22MIT-MAGIC-COO"..., 4096) = 110
read(4, "", 4096)                       = 0
close(4)                                = 0
getsockname(3, {sa_family=AF_UNIX}, [124 => 2]) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="l\0\v\0\0\0\22\0\20\0\0\0", iov_len=12}, {iov_base="", iov_len=0}, {iov_base="MIT-MAGIC-COOKIE-1", iov_len=18}, {iov_base="\0\0", iov_len=2}, {iov_base="6\32?\310\210\340\202\222\374\rv\303\322b\356\230", iov_len=16}, {iov_base="", iov_len=0}], 6) = 48
recvfrom(3, 0x5604b34cd680, 8, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\1\0\v\0\0\0C\16", 8, 0, NULL, NULL) = 8
recvfrom(3, "\214\245\270\0\0\0 \4\377\377\37\0\0\1\0\0\24\0\377\377\1\7\0\0  \10\377\0\0\0\0"..., 14604, 0, NULL, NULL) = 14604
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\20\1\6\0\r\0\0\0_XSETTINGS_S0\0\0\0", iov_len=24}], 1) = 24
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\1\0\0\0\0\0\262\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\27\0\2\0\262\1\0\0", iov_len=8}], 1) = 8
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\2\0\0\0\0\0\2\0`\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
shutdown(3, SHUT_RDWR)                  = 0
close(3)                                = 0
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
gettid()                                = 323052
getpid()                                = 323052
tgkill(323052, 323052, SIGABRT)         = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=323052, si_uid=1000} ---
+++ killed by SIGABRT +++
[1]    323048 IOT instruction  strace kate | 

期望:运行像 kate 这样的简单应用程序

情况:所有基于qt的都是核心转储(正在中止)

qt ubuntu qt5 xcb
1个回答
0
投票

我试图弄清楚是否有任何 qt 库是从 PPA 安装的,但没有成功。

然后我列出了qt6和qt5软件包。我意识到只有少数依赖于 qt5 软件包。

我已经删除了 dde-qt5integration qt5-gtk-platformtheme qt5-image-formats-plugins qt5dxcb-plugin

问题解决了。我想 qt5dxcb-plugin 是这里最关键的一个。

© www.soinside.com 2019 - 2024. All rights reserved.