QWSLock::up(): Invalid argument

本文介绍了一个Qt中的bug,当点击QMessageBox的确定按钮时会出现错误提示。通过应用特定的patch并重新编译解决了该问题。提供了patch的具体内容及参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行qt时,点击QMessageBox的确定按钮是出现错误QWSLock::up(): Invalid argument, QWSLock::down(): Invalid argument,这个是qt的bug。在网上找到patch更改之后从新编译,更改之后,问题解决。

参考链接:

http://www.mail-archive.com/community@lists.openmoko.org/msg65512.html

https://git.congatec.com/yocto/poky/commit/d1b523e7dd55b11d1b02904a83a0464b95616c07

patch的内容如下:

diff --git a/src/gui/embedded/qwslock.cpp b/src/gui/embedded/qwslock.cpp
index 9914a24..1055785 100644
--- a/src/gui/embedded/qwslock.cpp
+++ b/src/gui/embedded/qwslock.cpp
@@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id)
     QWSSignalHandler::instance()->addWSLock(this);
 #endif
 
+    owned = false;
+
 #ifndef QT_POSIX_IPC
     if (semId == -1) {
         semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666);
+        owned = true;
         if (semId == -1) {
             perror("QWSLock::QWSLock");
             qFatal("Unable to create semaphore");
@@ -100,7 +104,6 @@ QWSLock::QWSLock(int id) : semId(id)
     }
 #else
     sems[0] = sems[1] = sems[2] = SEM_FAILED;
-    owned = false;
 
     if (semId == -1) {
         // ### generate really unique IDs
@@ -134,9 +137,11 @@ QWSLock::~QWSLock()
 
     if (semId != -1) {
 #ifndef QT_POSIX_IPC
-        qt_semun semval;
-        semval.val = 0;
-        semctl(semId, 0, IPC_RMID, semval);
+   if (owned) {
+       qt_semun semval;
+       semval.val = 0;
+       semctl(semId, 0, IPC_RMID, semval);
+   }
         semId = -1;
 #else
         // emulate the SEM_UNDO behavior for the BackingStore lock
diff --git a/src/gui/embedded/qwslock_p.h b/src/gui/embedded/qwslock_p.h
index d324e4f..d867d20 100644
--- a/src/gui/embedded/qwslock_p.h
+++ b/src/gui/embedded/qwslock_p.h
@@ -86,8 +86,8 @@ private:
     int lockCount[2];
 #ifdef QT_POSIX_IPC
     sem_t *sems[3];
-    bool owned;
 #endif
+    bool owned;
 };
 
 QT_END_NAMESPACE

Tony Liu

2017-5-2, Shenzhen

基地址: 0x765149d000 任务: 31096 任务: 31102 任务: 31103 任务: 31105 任务: 31106 任务: 31107 任务: 31109 任务: 31117 任务: 31120 任务: 31126 任务: 31127 任务: 31131 任务: 31140 任务: 31147 任务: 31148 任务: 31175 任务: 31176 任务: 31178 任务: 31200 任务: 31209 任务: 31224 任务: 31225 任务: 31226 任务: 31230 任务: 31236 任务: 31241 任务: 31242 任务: 31244 任务: 31249 任务: 31250 任务: 31251 任务: 31252 任务: 31255 任务: 31260 任务: 31274 任务: 31275 任务: 31276 任务: 31296 任务: 31297 任务: 31302 任务: 31314 任务: 31321 任务: 31327 任务: 31339 任务: 31364 任务: 31366 任务: 31367 任务: 31370 任务: 31371 任务: 31372 任务: 31373 任务: 31378 任务: 31382 任务: 31383 任务: 31384 任务: 31385 任务: 31387 任务: 31388 任务: 31389 任务: 31390 任务: 31403 任务: 31405 任务: 31406 任务: 31407 任务: 31408 任务: 31409 任务: 31418 任务: 31419 任务: 31421 任务: 31432 任务: 31434 任务: 31435 任务: 31436 任务: 31440 任务: 31441 任务: 31442 任务: 31443 任务: 31444 任务: 31445 任务: 31446 任务: 31451 任务: 31461 任务: 31467 任务: 31468 任务: 31469 任务: 31471 任务: 31472 任务: 31547 任务: 31548 任务: 31578 任务: 31581 任务: 31585 任务: 31586 任务: 31587 任务: 31591 任务: 31592 任务: 31594 任务: 31595 任务: 31596 任务: 31601 任务: 31602 任务: 31604 任务: 31605 任务: 31606 任务: 31607 任务: 31608 任务: 31609 任务: 31611 任务: 31613 任务: 31618 任务: 31621 任务: 31625 任务: 31626 任务: 31627 任务: 31628 任务: 31629 任务: 31635 任务: 31692 任务: 31693 任务: 31712 任务: 31713 任务: 31714 任务: 31730 任务: 31731 任务: 31732 任务: 31733 任务: 31734 任务: 31761 任务: 31763 任务: 31764 任务: 31765 任务: 31766 任务: 31767 任务: 31774 任务: 31780 任务: 31800 任务: 31801 任务: 31802 任务: 31822 任务: 31824 任务: 31831 任务: 31859 任务: 31860 任务: 31862 任务: 31863 任务: 31864 任务: 31868 任务: 31873 任务: 31875 任务: 31876 任务: 31879 任务: 31884 任务: 31890 任务: 31892 任务: 31894 任务: 31895 任务: 31897 任务: 31900 任务: 31903 任务: 31917 任务: 31925 任务: 31930 任务: 31944 任务: 31959 任务: 31969 任务: 31973 任务: 31976 任务: 31981 任务: 32049 任务: 32051 任务: 32063 任务: 32064 任务: 32102 任务: 32107 任务: 32108 任务: 32109 任务: 32110 任务: 32158 任务: 32161 任务: 32206 任务: 32208 任务: 32209 任务: 32218 任务: 32219 任务: 32220 任务: 32223 任务: 32224 任务: 32226 任务: 32228 任务: 32230 任务: 32231 任务: 32233 任务: 32235 任务: 32239 任务: 32240 任务: 32247 任务: 32253 任务: 32256 任务: 32273 任务: 32327 任务: 32329 任务: 32330 任务: 32333 任务: 32347 任务: 32425 任务: 32450 任务: 32451 perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument perf_event_open error: Invalid argument 监控已启动,按任意键退出... perf_event_open error: Invalid argument perf_event_open error: Invalid argument Segmentation fault 进行断点后出现问题 怎么解决。帮我修复好完整发给我
最新发布
07-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值