我使用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