[Seek Help] deepin 20.9 文件管理器闪退
Tofloor
poster avatar
saidn
deepin
2026-06-09 10:36
Author
deepin 20.9  文件管理器闪退

时不时出现闪退,特别烦,严重影响工作。

[52513.555304] traps: dde-file-manage[41748] general protection fault ip:7fc2ef0d2870 sp:7ffe71bef8f8 error:0 in libdde-file-manager.so.1.8.2[7fc2ef02f000+5dc000]
[52695.553452] dde-file-manage[42151]: segfault at 7f3666785930 ip 00007f36682d2888 sp 00007fff6fdcd348 error 7 in libdde-file-manager.so.1.8.2[7f366822f000+5dc000] likely on CPU 2 (core 0, socket 0)
[52695.553477] Code: e9 dd e0 f5 ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 8b 17 31 c0 85 d2 74 0a b8 01 00 00 00 83 fa ff 75 06 c3 0f 1f 44 00 00 83 07 01 c3 0f 1f 00 55 48 89 fd 53 48 89 f3 48 83 ec 08 8b 47
[52951.553634] dde-file-manage[42842]: segfault at 7fd8dbd85930 ip 00007fd8dd8d2888 sp 00007ffde19abe78 error 7 in libdde-file-manager.so.1.8.2[7fd8dd82f000+5dc000] likely on CPU 3 (core 1, socket 0)
[52951.553662] Code: e9 dd e0 f5 ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 8b 17 31 c0 85 d2 74 0a b8 01 00 00 00 83 fa ff 75 06 c3 0f 1f 44 00 00 83 07 01 c3 0f 1f 00 55 48 89 fd 53 48 89 f3 48 83 ec 08 8b 47
[53051.552582] traps: dde-file-manage[43157] general protection fault ip:7fc01fad2870 sp:7ffebe74d048 error:0 in libdde-file-manager.so.1.8.2[7fc01fa2f000+5dc000]
[53187.051287] traps: dde-file-manage[43437] general protection fault ip:7fc82bad2870 sp:7ffd08180168 error:0 in libdde-file-manager.so.1.8.2[7fc82ba2f000+5dc000]
[53471.055036] dde-file-manage[43989]: segfault at 7fb8faf85930 ip 00007fb8fcad2888 sp 00007ffdc8bb9078 error 7 in libdde-file-manager.so.1.8.2[7fb8fca2f000+5dc000] likely on CPU 2 (core 0, socket 0)
[53471.055064] Code: e9 dd e0 f5 ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 8b 17 31 c0 85 d2 74 0a b8 01 00 00 00 83 fa ff 75 06 c3 0f 1f 44 00 00 83 07 01 c3 0f 1f 00 55 48 89 fd 53 48 89 f3 48 83 ec 08 8b 47
[54569.052371] dde-file-manage[44818]: segfault at 7ff11a385930 ip 00007ff11c0d2888 sp 00007fff7504be98 error 7 in libdde-file-manager.so.1.8.2[7ff11c02f000+5dc000] likely on CPU 0 (core 0, socket 0)
[54569.052392] Code: e9 dd e0 f5 ff 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 8b 17 31 c0 85 d2 74 0a b8 01 00 00 00 83 fa ff 75 06 c3 0f 1f 44 00 00 83 07 01 c3 0f 1f 00 55 48 89 fd 53 48 89 f3 48 83 ec 08 8b 47

2026-06-09, 10:21:37.093 [Debug] [dfileview.cpp DFileView::setRootUrl 2939] cd: current url: DUrl("file:///home/saidn/Desktop/requests/miner") to url: DUrl("file:///home/saidn/Desktop/requests/miner/cpuminer")
2026-06-09, 10:21:37.097 [Debug] [dfilesystemmodel.cpp DFileSystemModel::setRootUrl 1972] DUrl("file:///home/saidn/Desktop/requests/miner/cpuminer")
2026-06-09, 10:21:37.169 [Info] [dfilesystemmodel.cpp DFileSystemModel::fetchMore 1691] fetchMore start traverse all files in current dir = DUrl("file:///home/saidn/Desktop/requests/miner/cpuminer")
2026-06-09, 10:21:37.235 [Info] [dfilesystemmodel.cpp DFileSystemModel::updateChildren 2636] finish update children. isUpdatedFinished = true
段错误

Reply Favorite View the author
All Replies
avatar
saidn
deepin
2026-06-09 10:42
#1

大神帮帮忙啊!怎么解决

Reply View the author
avatar
deepin流云
Super Moderator
Community OP
2026-06-09 11:14
#2

20.9不维护已经好久了,你把这个日志喂给AI看看是什么原因,尝试用AI修复看看吧

Reply View the author
avatar
saidn
deepin
2026-06-09 11:23
#3

AI 解决不了
截图_选择区域_20260609112014.png

Reply View the author
avatar
晚秋(lateautumn)
Moderator
2026-06-09 12:09
#4

该升级了,差好几个版本了。不要老停留在过去applaud

Reply View the author
avatar
🐾深邃流年ₒₓ
deepin
2026-06-09 12:49
#5

只有AI才能帮你解决问题,20.9官方都抛弃了,就连23都不管了,建议楼主还是换一个靠谱的AI

Reply View the author
avatar
saidn
deepin
2026-06-09 13:51
#6

电脑配置太低 只能用 20.9

Reply View the author
avatar
罐子
Moderator
2026-06-09 15:42
#7
saidn

AI 解决不了
截图_选择区域_20260609112014.png

直接找对应版本的源码让ai在源码层面修。

Reply View the author
avatar
曾子康 TIM
deepin
2026-06-09 16:47
#8

原理可能是这样的:

在void DFileSystemModel::fetchMore中设置了QtConcurrent并启动了watcher

QtConcurrent在void DFileSystemModel::updateChildrenOnNewThread中定义,并指向void DFileSystemModel::updateChildren

然后watcher启动,并开始执行void DFileSystemModel::updateChildren.(这里不是主线程)

在第6行const FileSystemNodePointer &node = d->rootNode; //先记住,后面有用

然后在第67行执行了beginInsertRows(createIndex(node, 0), 0, list.count() - 1);

按理来说QtConcurrent是无法执行UI层面的操作的,但是他会emit rowsAboutToBeInserted()

这会使得连接了DFileSystemModel的QListView(具体用了什么不清楚,应该是继承了这个的)更新列表,并且是在主线程更新的

如果主进程刷新比QtConcurrent快,就会使得node所指向的东西在主进程中被释放

如果释放了,node应该会变为一个野指针,不过有QPointer在,node会变为nullptr

然后到下一行是node->setChildrenMap(fileHash); 而这个node是否为nullptr就要看谁更快了

如果为nullptr,那就会断错误

至于修正方法,要么不用多线程,要么把beginInsertRows和endInsertRows移出多线程

Reply View the author
avatar
saidn
deepin
2026-06-10 15:55
#9
曾子康 TIM

原理可能是这样的:

在void DFileSystemModel::fetchMore中设置了QtConcurrent并启动了watcher

QtConcurrent在void DFileSystemModel::updateChildrenOnNewThread中定义,并指向void DFileSystemModel::updateChildren

然后watcher启动,并开始执行void DFileSystemModel::updateChildren.(这里不是主线程)

在第6行const FileSystemNodePointer &node = d->rootNode; //先记住,后面有用

然后在第67行执行了beginInsertRows(createIndex(node, 0), 0, list.count() - 1);

按理来说QtConcurrent是无法执行UI层面的操作的,但是他会emit rowsAboutToBeInserted()

这会使得连接了DFileSystemModel的QListView(具体用了什么不清楚,应该是继承了这个的)更新列表,并且是在主线程更新的

如果主进程刷新比QtConcurrent快,就会使得node所指向的东西在主进程中被释放

如果释放了,node应该会变为一个野指针,不过有QPointer在,node会变为nullptr

然后到下一行是node->setChildrenMap(fileHash); 而这个node是否为nullptr就要看谁更快了

如果为nullptr,那就会断错误

至于修正方法,要么不用多线程,要么把beginInsertRows和endInsertRows移出多线程

不是这里的问题

崩溃指令 lock addl $0x1, (%rdi) 访问的地址 (%rdi) 无效,很可能是某个 QSharedPointerQPointer 指向的对象在另一个线程中被释放

Reply View the author