Я искал исходный код kdbg. Я заметил, что есть несколько мест, где появляется следующая строка источника:
::kill(pid(), SIGINT);
Моя проблема в том, что я не могу понять, где реализован pid (). Судя по моим поискам в Интернете, это не системный вызов. Извлечение дерева исходного кода kdbg не дало никаких подсказок, где оно реализовано.
Я не настолько опытен в C ++, хотя я много лет занимался разработкой на C. Это довольно сложно. У кого-нибудь есть идеи?
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
, знак равно
Других решений пока нет …