c++ - 为什么 GDB 不进入函数体?
问题描述
int filterplugin::init(StructModelConfigNode &modelConfig)
{
configdir = modelConfig.dir;
initTrieHandle(m_adWordsHandle, 0);
string wordsFile = configdir + "/word.txt";
if (!loadAdWords(wordsFile.c_str()))
m_adWordsHandle = 0;
...
}
当我使用 gdb 调试上面的代码时,gdb 会跳过该行:
initTrieHandle(m_adWordsHandle, 0);
我发现它initTrieHandle
是在另一个 c++ 头文件中定义的:“myTrie.h”
typedef void* TRIEHANDLE;
int initTrieHandle(TRIEHANDLE &handle,const char *dicPath = 0);
但是,在整个项目中,我找不到该功能的实现initTrieHandle()
。myTrie.h 中有很多其他函数定义,但没有 myTrie.cpp 或 myTrie.hpp。我找不到任何实现细节。可能正因为如此,我无法调试到这个函数,GDB 只是跳过了前面描述的行:
initTrieHandle(m_adWordsHandle, 0);
为什么会这样以及如何找到该函数的实现代码?这是别人写的项目。