我使用NetBeans 7.1在Kubuntu 12.04编译Qt 4.8程序(http://code.google.com/p/image-feature-detector/)(尽管Kubuntu 11.10发生同样的情况)当我尝试运行编译的可执行文件时出现一个疯狂的错误。该程序编译和运行完美,但突然有一天,我得到了这个错误,当一个正确的编译后,我试图运行它。错误/ var/tmp/kdecache由uid 1000拥有,而不是uid 0
这是我得到的,如果我运行sudo
可执行文件:
error /var/tmp/kdecache-myuser is owned by uid 1000 instead of uid 0
如果我运行可执行文件,而不sudo
我得到:
Segmentation fault (core dumped)
如果我kdesudo
运行可执行文件,之后通过提示密码出现窗口,没有任何反应。
如果我调试程序,所述调试之前停止在程序的这个拆卸部分的第二行的NetBeans显示我达到源代码中的任何行:
_ZN15QAbstractButton10setCheckedEb()
Stops here->_ZN15QAbstractButton10setCheckedEb+22: mov 0x8(%rdi),%rbp
_ZN15QAbstractButton10setCheckedEb+26: mov %esi,%r12d
_ZN15QAbstractButton10setCheckedEb+29: movzbl 0x214(%rbp),%eax
_ZN15QAbstractButton10setCheckedEb+36: test $0x1,%al
_ZN15QAbstractButton10setCheckedEb+38: je 0x7ffff74a10d0 <_ZN15QAbstractButton10setCheckedEb+192>
_ZN15QAbstractButton10setCheckedEb+44: mov %eax,%edx
_ZN15QAbstractButton10setCheckedEb+46: shr %dl
_ZN15QAbstractButton10setCheckedEb+48: and $0x1,%edx
_ZN15QAbstractButton10setCheckedEb+51: cmp %sil,%dl
_ZN15QAbstractButton10setCheckedEb+54: je 0x7ffff74a10d0 <_ZN15QAbstractButton10setCheckedEb+192>
_ZN15QAbstractButton10setCheckedEb+60: test %sil,%sil
_ZN15QAbstractButton10setCheckedEb+63: je 0x7ffff74a1100 <_ZN15QAbstractButton10setCheckedEb+240>
_ZN15QAbstractButton10setCheckedEb+69: mov %rsp,%rdi
_ZN15QAbstractButton10setCheckedEb+72: mov %rbx,(%rsp)
_ZN15QAbstractButton10setCheckedEb+76: callq 0x7ffff70bd220 <[email protected]>
_ZN15QAbstractButton10setCheckedEb+81: movzbl 0x214(%rbp),%eax
_ZN15QAbstractButton10setCheckedEb+88: mov %r12d,%edx
_ZN15QAbstractButton10setCheckedEb+91: and $0x1,%edx
_ZN15QAbstractButton10setCheckedEb+94: add %edx,%edx
_ZN15QAbstractButton10setCheckedEb+96: and $0xfffffffd,%eax
_ZN15QAbstractButton10setCheckedEb+99: or %edx,%eax
_ZN15QAbstractButton10setCheckedEb+101: test $0x20,%al
_ZN15QAbstractButton10setCheckedEb+103: mov %al,0x214(%rbp)
_ZN15QAbstractButton10setCheckedEb+109: je 0x7ffff74a10e8 <_ZN15QAbstractButton10setCheckedEb+216>
_ZN15QAbstractButton10setCheckedEb+111: mov %rbp,%rdi
_ZN15QAbstractButton10setCheckedEb+114: callq 0x7ffff749f9f0
_ZN15QAbstractButton10setCheckedEb+119: cmpq $0x0,(%rsp)
我试验,改变了所有权/var/tmp/kdecache-myuser/
到root
(uid 0)。然后我用sudo
运行我的可执行文件,并且如果我没有运行程序sudo
,我得到了“Segmetation fault”错误。另外,当我更改原始/var/tmp/kdecache-myuser/
文件夹的权限时,将创建一个新的/var/tmp/kdecache-looksLikeMd5Number/
文件夹,并具有myuser
权限。
我很感激任何关于如何解决这个让我疯狂的错误的建议。
嗯,我认为这必须与一些指向null的指针相关。 – AxeEffect
看到我的回复为什么至少部分(“错误:”/ var/tmp/kdecache-computeruser“由uid 1000而不是uid 0拥有”)在您的代码中似乎没有问题,例如空指针...除非在kdialog中存在相同的问题。 – MountainX