我的gdb是GNU gdb Red Hat Linux(6.3.0.0-1.162.el4rh)。我无法调试模板。如何使用此调试器调试模板?使用GDB调试模板
10
A
回答
10
如果你的问题只是关于在你的代码中放置断点。这里是一个小片段
例如:main.cpp中
#include <iostream>
template <typename T>
void coin(T v)
{
std::cout << v << std::endl;
}
template<typename T>
class Foo
{
public:
T bar(T c)
{
return c * 2;
}
};
int main(int argc, char** argv)
{
Foo<int> f;
coin(f.bar(21));
}
与 编译G ++ -O0 -g的main.cpp
gdb ./a.out
(gdb) b Foo<int>::bar(int)
Breakpoint 2 at 0x804871d: file main.cpp, line 16.
(gdb) b void coin<int>(int)
Breakpoint 1 at 0x804872a: file main.cpp, line 6.
(gdb) r
... debugging start
否则你可以只使用
(gdb) b main.cpp:16
0
我当时很难尝试使用模板来调试gdb到 用gdb 6.8与gcc版本4.4.1
编译撕扯我的头发一段时间后代码代码,我发现它神奇 开始工作完美,当我-fPIC开关添加到G ++编译参数。
+2
Hello Bo和Ferd,我很想知道-fPIC,即与位置无关的代码如何帮助您调试C++中的模板程序。如果您分享您的见解,我会很感激。 – indranil 2015-08-05 07:50:11
相关问题
- 1. 使用gdb调试带模板和STL的C++代码
- 2. 使用gdb调试回调
- 3. 用gdb调试
- 4. 使用gdb来调试C++
- 5. 使用gdb调试pthreads
- 6. 使用gdb调试qemu
- 7. 使用gdb调试conio.h
- 8. 如何使用GDB调试
- 9. 使用GDB调试Android
- 10. 使用GDB调试iPhone
- 11. 使用GDB进行调试
- 12. 使用gdb调试Java .jar
- 13. 使用gdb调试llvm pass
- 14. 使用GDB调试进程
- 15. 用gdb调试C
- 16. 使用GDB进入模板类
- 17. 使用GDB调试iOS应用程序
- 18. gdb - 用管道调试
- 19. 用Eclipse CDT和GDB调试
- 20. 如何使用gdb调试GUI程序
- 21. Golang使用GDB进行调试?
- 22. 使用gdb和objdump进行调试
- 23. 使用GDB调试netlink通信
- 24. 使用gdb调试kext:死锁
- 25. 使用gdb调试wget命令
- 26. 使用ndk-gdb进行Android NDK调试
- 27. 使用gdb调试chroot程序
- 28. php5 - 使用gdb调试CRC不匹配
- 29. 如何使用gdb调试SIGTRAP?
- 30. 如何使用GDB调试Samba
你的问题还不够清楚。代码片段,你做了什么,什么不工作 - 所有这些都可以帮助我们帮助你。 – 2009-11-03 12:27:51