q***i 发帖数: 627 | 1 A()->....->F()
如题,有什么工具能列出所有两个函数间的可能的调用code path>
如:
A()->C()->D->F() |
c******n 发帖数: 16666 | 2 随便啥ide 开debug看call stack之类的 |
q***i 发帖数: 627 | 3 只有不详细的log和代码,客户系统,很难重现的bug |
c******n 发帖数: 16666 | 4 你有全部代码 本地自己跑一下就可以
如果只有部分代码 然后还是很难重现的bug
这个基本只有听天由命了吧
【在 q***i 的大作中提到】 : 只有不详细的log和代码,客户系统,很难重现的bug
|
c******n 发帖数: 16666 | 5 尤其是那种很老的系统 历经好几代人维护
谁知道哪个几角旮旯里有几百行switch case
。。。 |
q***i 发帖数: 627 | 6 系统很大,我们的代码只是一部分,不太可能本地运行重现bug。
从代码静态分析的角度,应当有这样的工具。不需要知道确切的调用关系,只需要知道
所有可能的调用路径,然后再读代码和日志筛选
[在 chunjuan (👍春卷🐱更多春卷👍) 的大作中提到:]
:尤其是那种很老的系统 历经好几代人维护
:谁知道哪个几角旮旯里有几百行switch case
:........... |
n*****t 发帖数: 22014 | 7 先说是什么语言,而且 path 可能不是唯一,中间说不定还有递归 。。。最傻大黑粗
的就是 log
【在 q***i 的大作中提到】 : 系统很大,我们的代码只是一部分,不太可能本地运行重现bug。 : 从代码静态分析的角度,应当有这样的工具。不需要知道确切的调用关系,只需要知道 : 所有可能的调用路径,然后再读代码和日志筛选 : [在 chunjuan (👍春卷🐱更多春卷👍) 的大作中提到:] : :尤其是那种很老的系统 历经好几代人维护 : :谁知道哪个几角旮旯里有几百行switch case : :...........
|
q***i 发帖数: 627 | 8 语言是c,就是要静态找出所有可能路径
[在 nickmit (上海老姜) 的大作中提到:]
:先说是什么语言,而且 path 可能不是唯一,中间说不定还有递归 。。。最傻大黑粗
:的就是 log
:........... |
w***g 发帖数: 5958 | 9 我帮你google了一下。
http://stackoverflow.com/questions/5373714/generate-calling-gra
有了call graph以后,无非就是深度/广度优先搜索。
黑粗
【在 q***i 的大作中提到】 : 语言是c,就是要静态找出所有可能路径 : [在 nickmit (上海老姜) 的大作中提到:] : :先说是什么语言,而且 path 可能不是唯一,中间说不定还有递归 。。。最傻大黑粗 : :的就是 log : :...........
|
h*****2 发帖数: 2070 | 10 static analysis is doable for c# and Java. haven't investigated c
黑粗
【在 q***i 的大作中提到】 : 语言是c,就是要静态找出所有可能路径 : [在 nickmit (上海老姜) 的大作中提到:] : :先说是什么语言,而且 path 可能不是唯一,中间说不定还有递归 。。。最傻大黑粗 : :的就是 log : :...........
|
n*****t 发帖数: 22014 | 11 静态找出所有困难,runtime gdb bt 可以
黑粗
【在 q***i 的大作中提到】 : 语言是c,就是要静态找出所有可能路径 : [在 nickmit (上海老姜) 的大作中提到:] : :先说是什么语言,而且 path 可能不是唯一,中间说不定还有递归 。。。最傻大黑粗 : :的就是 log : :...........
|
n*****t 发帖数: 22014 | 12 这个遇到函数指针就哭晕在厕所了吧?
【在 w***g 的大作中提到】 : 我帮你google了一下。 : http://stackoverflow.com/questions/5373714/generate-calling-gra : 有了call graph以后,无非就是深度/广度优先搜索。 : : 黑粗
|