c++怎么 debug 二叉树?

2017-09-17 12:54:44 +08:00
 judyApple

我只会用基本的 debug,mac 下用 shell 跑一跑极其简单的 debug。

但是比如我要 access 二叉树某个结点的 int 值,我在 debug 下输入

print root->val

或者 access 一个 stack 的 front( )的值,

print q.front()

debug 就不认这个,总报错,不能 Print 出值来。。显示这个

“ Cannot evaluate function -- may be inlined ”

请问大神们怎么解决这个问题? c++好虐啊。。

4217 次点击
所在节点    算法
10 条回复
judyApple
2017-09-17 13:05:54 +08:00
自己顶顶。。。
clarkok
2017-09-17 13:07:57 +08:00
编译的时候不要加优化参数,比如 gcc/clang 编译的时候把 -O1/2/3 改成 -O0
judyApple
2017-09-17 13:19:18 +08:00
@clarkok 啊大神,没太看懂你的意思。。我编译的命令是

g++ -g -std=c++11 filename.cpp 然后 gdb a.out 开始 debug。您说的-O1 之类的是什么?
daimao
2017-09-17 13:33:49 +08:00
先学会怎么问问题再来提问吧…
zhaoxiting1997
2017-09-17 13:47:48 +08:00
不会用命令行 gdb 就用 IDE 啊
snnn
2017-09-17 15:02:06 +08:00
不要在 debugger 里面执行 c 的函数。你可以 print value,但是不要 print function
secondwtq
2017-09-17 19:16:16 +08:00
@zhaoxiting1997 Mac 下的 IDE,Xcode 和 CLion 都是调 lldb 的,楼主的问题并不会因为换了个看起来万能的 IDE 就一下子被解决了
judyApple
2017-09-18 08:28:03 +08:00
@secondwtq 这位大神,你知道怎么解决么?以后写二叉树都不能 debug 很痛苦。。。
zhaoxiting1997
2017-09-18 15:36:32 +08:00
@secondwtq
@judyApple
我指的意思是直接用 Clion 之类的变量查看,直接添加一个变量就能看到值了
arzterk
2017-12-27 17:17:12 +08:00
换 Visual Studio,装个 STLport&调试符号插件,什么 map\tree 都能看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/391363

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX