如何在Code::Blocks下查看程序的汇编代码

学习C语言,Code::Blocks是个不错的IDE。有时候我们需要查看程序的对应的汇编代码,那么Code::Blocks如何才能像vc6.0中那样debug时候查看反汇编代码呢?

    1. 首先创建一个工程:Create a new project -> ConsoleApplication -> 填上工程文件名和project路径 -> 调试器和编译器默认。
    2. 随便在工程里写点什么代码,比如下面的一个递归代码为例:k7娱乐城
#include "stdio.h"
#include "math.h"

int factorial(int n);

int main(void)
{
    int n, rs;

    printf("请输入斐波那契数n:");
    scanf("%d",&n);

    rs = factorial(n);
    printf("%d \n", rs);

    return 0;
}

// 递归
int factorial(int n)
{
    if(n <= 2)
    {
        return 1;
    }
    else
    {
        return factorial(n-1) + factorial(n-2);
    }
}
    1. 点击“菜单栏 Debug -> Debugging windows -> disassembly”,把汇编窗口呼出来。
    2. 设定断点。就是设置查看汇编的那一段代码。在代码的左边(代码行)右键就可以设定调试断点了。

    1. 点击调试,就可以看到汇编代码了。如下:

  1. 如果想看指针或数组,可以编辑watch窗口,定义你想watch变量的类型。有很多窗口,自己可以多探索尝试。
时间: 2024-10-12 19:43:34

如何在Code::Blocks下查看程序的汇编代码的相关文章

体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)

0. 前言 不知道为什么,几乎所有的C++编程教程都是从命令行版(控制台应用程序)的Hello World开始的.然而,对于现在的年轻人来说,从小就用鼠标点击窗口或图标操作电脑,对于那个神秘黑色的窗口中的文字就像天书.对于我们这些从DOS时代走来的人,或许那个黑色窗口会唤起很多记忆,但是,对于当前的GUI化的时代来说,那个窗口已经没有多少意义了.除非为了显示我的知识渊博和高深莫测,通常我不会给年轻人讲述那个黑色窗口中的东西. 既然现在学习C++编程的都是年轻人,我还是讲一下怎样构建GUI版的He

使用Xcode 查看objective-C的汇编代码

Xcode自带将某一个源文件转化成汇编的功能,如图: 汇编的部分代码如下: # Assembly output for assemble.c # Generated at 2:29:34 下午 on 星期一, 八月 18, 2014 # Using Debug configuration, x86_64 architecture for dataStruct target of dataStruct project .section __TEXT,__text,regular,pure_inst

Code::Blocks 使用 AStyle 格式化 C/C++ 代码

目录 AStyle Code::Blocks Source code formatter plugin Source code formatter (AStyle) shortcut AStyle A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective?C, C#, and Java Source Code Project Page: http://astyle.sourceforge.net/ Sou

c++(vs上)与g++(linux下)对于++操作的汇编代码解读

先来看一个代码,估计很多同学都碰到过其中的某一个. #include <stdio.h> #include <iostream> using namespace std; int main() { int a = 5; printf("a++ = %d\n", a++); a = 5; printf("++a = %d\n", ++a); a = 5; printf("a += a++ =%d\n", a += a++);

一个简单C程序的汇编代码分析

几个重要的寄存器 eip - 用于存放当前所执行的指令地址 esp - 栈(顶)指针寄存器 ebp - 基址(栈底)指针寄存器 简单的C程序 1 int g(int x) 2 { 3 return x + 10; 4 } 5 6 int f(int x) 7 { 8 return g(x); 9 } 10 11 int main(void) 12 { 13 return f(7) + 5; 14 } 汇编代码分析 1 g: 2 pushl %ebp 3 movl %esp, %ebp 4 :下面

如何在 code blocks中使用 mkl库

为了安装caffe, 所以安装了mkl, 现在想在codeblock的项目中使用mkl. 设置mkl环境变量: mkl安装好后默认是在/opt/intel/mkl中,其中/opt/intel/mkl/bin下有脚本可以设置环境变量,根据mkl的user guid:我电脑安装的是64位的ubuntu 14.04,所以我使用 /opt/intel/mkl/bin/mklvars.sh inter64 但是报错说 typeset : not found, 根据网上的搜索,得知是应该用bash去运行它,

linux下查看程序占用多少内存

执行 ps auxVSZ(或VSS)列 表示,程序占用了多少虚拟内存:RSS列 表示, 程序占用了多少物理内存:虚拟内存可以不用考虑,它并不占用实际物理内存. 或执行top 命令 VIRT(或VSS)列  表示,程序占用了多少虚拟内存, 同 ps aux 中的 VSZ列:RES列 表示, 程序占用了多少物理内存, 同 ps aux 中的RSS列. 参考 http://blog.chinaunix.net/uid-20492804-id-265809.html

code blocks修改运行程序时候使用的terminal

菜单Setting -> Environment -> General Settings. 找到"Terminal to launch console programs"右侧的输入框架,将 xterm -T $TITLE -e 改成 gnome-terminal -t $TITLE -x

反编译C程序为汇编代码,汇编代码执行过程的分析与思考

张韩+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统:32位Ubuntu14.04 编写C程序:(保存至main.c) int g(int x) {   return x + 3; } int f(int x) {   return g(x); } int main(void) {   return f(8) + 1; } 控制台反编译命令: 得到main.s,其内容如下: