摘要:准备文件编写代码编写简单的递归函数,命名为生成可调试文件这里的参数方便调试,生成可执行文件进行调试按下图方式进行操作单步运行显示当前的和显示寄存器的值可以看到递归调用的堆栈代码地址函数调用信息
准备文件 编写代码
编写简单的递归函数,命名为factial.c
#include生成可调试文件int main(){ int sum = factial(5); } factial(int n){ if(n==2){ return 2; } return n * factial(n-1); }
gcc factial.c -o factial -g进行调试
这里的-g参数方便调试,生成可执行文件fatial
按下图方式进行操作
单步运行
显示当前的frame和stack
显示寄存器的值
可以看到递归调用的堆栈
代码地址
函数调用信息
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/63907.html
摘要:建模语言建模语言是可用于表达信息或知识或系统的任何人造语言,该结构由一组一致的规则定义,目标是可视化,推理,验证和传达系统设计。将这些文件安排到不同的地方称为源代码树。源代码树的结构通常反映了软件的体系结构。 大纲 软件构建的一般过程: 编程/重构 审查和静态代码分析 调试(倾倒和记录)和测试 动态代码分析/分析 软件构建的狭义过程(Build): 构建系统:组件和过程 构建变体...
摘要:调试器可帮助程序员分析完整的代码。我们将使用标准库中的模块调试我们的脚本。例外是程序执行期间发生的错误。设置断点并检查堆栈帧,并列出源代码。输入以继续调试。分析和计时程序分析程序意味着测量程序的执行时间。的模块用于分析程序。 showImg(https://segmentfault.com/img/remote/1460000018807029?w=902&h=442); 来源 | ...
摘要:有几个下的用户空间调试工具和技术,他们用来分析用户空间问题相当有用。捕捉库调用的输出是一套调试和分析工具。在种获得帮助总结在这篇文章中,我们已经看到不同类型的用户空间的调试工具。 根据定义,调试工具是那些那些使我们能够监测、控制和纠正其他程序的程序。我们为什么应该用调试工具呢? 在有些情况下,运行一些程序的时候我们会被卡住,我们需要明白究竟发生了什么。 例如, 我们正在运行应用程序,它...
摘要:通过单元测试,开发者可以为构成程序的每一个元素例如,独立的函数,方法,类以及模块编写一系列独立的测试用例。在每个测试中,断言可以用来对不同的条件进行检查。当退出调试器时,调试器会自动恢复程序的执行。 Python已经演化出了一个广泛的生态系统,该生态系统能够让Python程序员的生活变得更加简单,减少他们重复造轮的工作。同样的理念也适用于工具开发者的工作,即便他们开发出的工具并没有出现...
摘要:样本概况样本信息基本信息文件大小修改时间年月日病毒行为在系统目录下生成病毒程序并执行修改注册表添加启动项目录下产生文件关闭网络共享存在网络连接有加密的流程传输感染文件测试环境系统环境位位工具查看感染标记动态调试静态调试进程查看 01-样本概况 1.1-样本信息 基本信息 文件: C:/Us...
阅读 1822·2021-09-30 09:53
阅读 1332·2021-09-24 09:48
阅读 1616·2019-08-30 14:01
阅读 1989·2019-08-29 18:35
阅读 1122·2019-08-26 18:27
阅读 2821·2019-08-26 12:12
阅读 792·2019-08-23 17:16
阅读 771·2019-08-23 15:31