如题
离线
如果“调用了很多次”的意思是在调试窗口中多次经过同一行代码,那这个是正常的,因为一条代码可能被拆成多条指令,而编译器在优化的时候会在不改变代码逻辑的前提下重排序这些指令,导致调试的时候会依次执行代码对应的多条指令,反映到调试窗口就是这个现象了。
离线
运行中不能吧,Qt必须设置断点才能输出调用栈。
或者你自己去查寄存器手写一个栈回溯,就像kernel的dump_stack那样。
离线
man backtrace ?
离线
就设断点呗!
离线
我是楼主.
感谢大家回复, 可能是我自己代码没写好, 一部分调试语句用了 printf() & fflush(), 另一部分调试语句用 qDebug()
导致 qDebug() 部分调试输出要么不输出, 要么一起输出, 所以才有了一楼的提问.
现在都改成 printf() & fflush() 就解决了这个问题.
后来放狗搜,确实没有搜到 print call stack 这种函数.
最近编辑记录 孤星泪 (2021-01-19 19:12:41)
离线