问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

要做一个根据C代码自动生成函数调用关系图的小程序

发布网友 发布时间:2022-04-23 05:53

我来回答

2个回答

热心网友 时间:2022-04-10 14:38

1,你可以尝试一下llvm,苹果公司支持的开源编译器项目,它可以将程序解析成基本块的关系图;首先llvm做的事情要比你要求的多很多,程序会被解释成一个模块,每个模块包含若干个函数function,function内部将代码分成一个一个基本块,基本块是一个编译原理的术语,你可以查一下相关定义。其次,高级语言程序要被解释成一种中间表达,这种中间表达可以描述一种图叫做有向无环图,你所需要的调用关系图是这个有向无环图中的一个子图。
2,自己做的话首先你要了解有向无环图(DAG)的数据结构,比较适合描述函数调用关系图,其次要将函数抽象成DAG上的一个结点,这个结点至少包含以下信息,调用这个函数的母函数指针集合,这个函数调用的函数指针集合,当前函数的名称。追问llvm听起来太牛*了,我自己做只需知道图是怎么实现的就行,后台算法不难,用MFC可做么?因为要求用VC实现

追答只是算法的话,和MFC没有关系。。。,只有图形化输出用MFC,用C++的标准库就可以了,llvm里面有很多数据结构,定义的很好,用来表达图,你可以参考下。另外,有向无环图的实现有比较多的范例,这个就不用我给你找了吧。。。,追加一点:因为看你说都你解析代码估计问题不大,这里的解析,我不知道你指的到哪一层,因为按照编译原理,首先是词法解析,然后文法解析,如果你已经过了文法解析这一步,那么应该可以建立语义树,如果你只关系函数调用关系,语义树可以忽略掉文法解析传过来的绝大多数信息,只保留函数调用的文法规则返回回来的信息;由语义树到有向无环图只是一个数据结构创建的过程。

热心网友 时间:2022-04-10 15:56

您好,我最近也在看这方面的知识,想要获得c源代码的函数调用关系图,看到您提的问题,不知道您现在解决了吗,可否指导下,谢谢
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长沙到西昌。坐火车先从长沙到成都、成都东,再到西昌,哪个方便一些 S先生与P先生谜题的题面 为什么首都设在襄阳 改姓可以不随父母性吗 韩艺瑟怎么改姓? 纸、墨、笔、砚是中国传统的文房四宝,墨的使用最早在 [ ] A.商代后期... 想问下创维光伏E企赢模式有哪些优势,到底值不值得投资啊?有没有合作... 太平洋太享e保百万医疗值得入手吗?每年花多少钱? 爱e满分适合哪些人买?注意哪些问题? 太平洋太享e保百万医疗适合哪些人买?价格多少? 编程实现代码覆盖率及路径分析检测,C++, C#, Java, JavaScript(任选一种程序语言) 编程实现代码覆盖率及路径分析检测,C++, C#, Java, JavaScript(任选一种程序语言) WinFX 是什么 WinFX 是什么 有熟悉linux下C++编程的吗? 有熟悉linux下C++编程的吗? 代码优化的局部优化 c语言程序的基本结构是什么? try-catch-finally三个基本块的作用?catch里的代码是干什么的? 计算机程序的三种基本结构是啥? 程序是有什么组成的? 何谓局部优化,循环优化和全局优化?优化工作在编译的哪个阶段进行 basic block是什么意思 OPPO手机换一个屏幕大概多少钱? OPPOreno6换个屏幕多少钱 OPPO手机屏幕碎了,整个手机都黑屏打不开了,换一个要多少钱?急 oppo手机换个屏幕要多少钱? 手机屏幕碎了,换一个oppo手机屏幕要多少钱?大概多长时间能换好? 护眼模式是更省电还是更.费电 在PPT中怎么使用动画效果 要做一个根据C代码自动生成函数调用关系图的小程序 编译原理。。 编译原理。。 什么是计算机中的子字并行技术? 什么是计算机中的子字并行技术? Java 是编译型语言还是解释型语言? Java 是编译型语言还是解释型语言? C语言程序的三种基本结构是__ C语言程序的三种基本结构是__ C++ int i[233];我直接这样写代表了什么意思? C++ int i[233];我直接这样写代表了什么意思? 喵喵折部分商品显示历史价格曲线,部分商品不显示。在京东一个商品前几... JD价格什么意思? jd店铺首页自动抓取价格代码组合到一起为什么第二个图片上无法显示价格 京东和淘宝那个更好? 现在有哪些JD歌曲 一首韩国JD舞曲 好听的JD曲 歌曲中的jd版是什么意思? 京东二手钢琴菊次郎二手钢琴怎么样