2017-04-11 34 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

谢谢!这是有益的,快速! –