文章预览
有天老板让我参与分析一个比较棘手的问题,问题不但不好复现,而且涉及到的函数调用非常错综复杂(就像屎山里那堆东西那样)。一整天没有很好的进展,渐渐地对着这堆屎山发起呆来,隐约中似乎被一股气息刺激到了一根神经,在想——是否存在一种技术可以记录C语言函数所有的集成过程? 这个问题后面花了很长时间很大精力被找到了。时间过去很久了,但那个“记录C语言函数调用全过程”这个方法,我一直都没找到。 在每个函数里都打印个log吧,十个八个函数其实手动添加进去也没问题,可以像这样,不用的时候,还可以将宏定义定义成空: # if FUNC_RECORD_USE # define FUNC_RECORD() printf("Enter function \n", __FUNCTION__) # else # define FUNC_RECORD() # endif void func_example ( void ) { FUNC_RECORD(); // ... } 但是,对于有成千上万函数的项目呢
………………………………