骨架代码:
让我们说你有这样的东西(x.cpp):
int main() {
char* str = <some_function_which_returns_char*>; // Such as hello, hell, hellow and it could be anything.
// Do some work here.
}
如果str包含“hell”,如何在gdb中放置断点。此substr“hell”可以出现在str的任何位置。说好了,你好,等等。我写了:
b x.cpp:3 if $_regex(str, "hell") // At line number 3 of above snapshot. Right after getting the char*
这是正确的方法吗?
要么
还有其他方法可以解决吗?
现在让我们不要担心泄漏和其他任何问题。
最佳答案
您可以使用cond
命令使断点成为条件:
cond x.cpp:3 strcmp(str,"hell") == 0
-确切地表示hell
。 cond x.cpp:3 strncmp (str,"hell",4)
-适用于所有以hell
开头的字符串。 cond x.cpp:3 strstr(str, "hell") != NULL
-对于所有包含hell
作为子字符串的字符串。 关于c++ - 从函数获取char *之后的条件gdb断点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56985746/