2017-04-11 33 views
1

我一直在尋找kdbg源代碼。我注意到有幾個地方出現以下源代碼行:kdbg pid()在源代碼中調用

::kill(pid(), SIGINT); 

我的問題是,我無法理解pid()的實現。從我在網上的搜索中,它似乎不是一個系統調用。清理kdbg源代碼樹並沒有產生任何線索。

雖然我已經做了很多年的C開發,但我並沒有C++的經驗。這很令人困惑。任何人有任何想法?

回答

1
cd tmp 
git clone git://repo.or.cz/kdbg.git 
grep -lrE "pid\(\)" * 
>kdbg/gdbdriver.cpp 
>kdbg/xsldbgdriver.cpp 
>kdbg/dbgdriver.cpp 
>kdbg/dbgmainwnd.cpp 
grep -C 20 "pid\(\)" kdbg/gdbdriver.cpp 
>.... Extra stuff 
>void GdbDriver::interruptInferior() 
>{ 
> ::kill(pid(), SIGINT); 
>.... Extra stuff 
echo "Ah, it's a class... I bet pid()is a function"^C 
echo "After following the inheritance chain, I found..."^C 

http://doc.qt.io/qt-5/qprocess-obsolete.html#pid

這是一個QProcess成員函數。該類繼承自繼承自QProcess的類。 =)

+0

謝謝!這是有益的,快速! –