首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么有效地避免函数相互调用

2013-06-26 
如何有效地避免函数相互调用?一个工程很庞大,函数很多,那么,有没有办法,能有效地避免函数相互调用,进入死

如何有效地避免函数相互调用?
一个工程很庞大,函数很多,那么,有没有办法,能有效地避免函数相互调用,进入死循环?

例,有些情况可能隐藏得很深:

A调用了B,B调用了C,C调用了D,D调用了……调用了N, N调用了A
[解决办法]
高内聚低耦合
[解决办法]
写得有层次点,函数的功能独立单一点~
[解决办法]
如果循环调用导致死循环,运行起来后堆栈应该会迅速崩溃的,看一下最后崩溃的点,必然为死循环中某函数,然后在顺藤摸瓜的把所有相关调用找出来。
[解决办法]
Windows:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

Lunux:
进程意外退出会在当前目录下产生形如‘core.数字’的文件比如‘core.1234’
使用命令
gdb 运行程序名 core.数字
进入gdb然后使用bt命令
可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。
如果进程意外退出不产生core文件,参考“ulimit -c core文件最大块大小”命令

热点排行