1.vc6的相关使用
1)常用的快捷键
f7    ->编译
f5    ->运行
f9    ->断点
f10    ->单步执行
f11    ->单步执行,可进入函数
shift+f5    ->退出debug
 
2)两个常用的窗口
这两个窗口都需要在断点调试时才能打开;
1】寄存器窗口
可以用来查看寄存器的值;
efl为标志寄存器,如果想查看各个位需要自己转成二进制来看;
 
2】内存窗口
可以把反汇编的内存地址选中,拖到该窗口,来查看该内存地址中的值;
 
3)反汇编窗口
在断点调试时,右键空白处,在弹出的菜单中选“Go To Disassembly”
 
2.分析不带参数和返回值的函数
代码:
#include "stdio.h"
int method();
 
int main(int argc, char* argv[])
{
    method();
    return 0;
}
int method(){
 
}
分析:
 
3.分析待参数和返回值的函数
代码:
#include "stdio.h"
int method(int,int);
 
 
int main(int argc, char* argv[])
{
    method(1,2);
    return 0;
}
int method(int x, int y){
    return x+y;
}
分析:
4.分析多重调用的函数
代码:
#include "stdio.h"
int method(int, int);
int plus(int, int, int);
 
int main(int argc, char* argv[])
{
    plus(1,2,3);
    return 0;
}
int method(int x, int y){
    return x+y;
}
int plus(int x, int y, int z){
    return method(x,y)+z;
}
分析:
 
 

c语言函数分析的更多相关文章

  1. c 语言函数分析

    第一个参数为指向线程标识符的指针. 第二个参数用来设置线程属性. 第三个参数是线程运行函数的起始地址. 最后一个参数是运行函数的参数. result = pthread_create(&tid ...

  2. 从linux0.11中起动部分代码看汇编调用c语言函数

    上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一 ...

  3. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  4. 动态修改 C 语言函数的实现

    Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 O ...

  5. start_amboot()函数分析

    一.整体流程 start_amboot()函数是执行完start.S汇编文件后第一个C语言函数,完成的功能自然还是初始化的工作 . 1.全局变量指针r8设定,以及全局变量区清零 2.执行一些类初始化函 ...

  6. Linux-0.11内核源代码分析系列:内存管理get_free_page()函数分析

    Linux-0.11内存管理模块是源码中比較难以理解的部分,如今把笔者个人的理解发表 先发Linux-0.11内核内存管理get_free_page()函数分析 有时间再写其它函数或者文件的:) /* ...

  7. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  8. R语言︱情感分析—词典型代码实践(最基础)(一)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:词典型情感分析对词典要求极高,词典中 ...

  9. 【转】对 Rust 语言的分析

    对 Rust 语言的分析 Rust 是一门最近比较热的语言,有很多人问过我对 Rust 的看法.由于我本人是一个语言专家,实现过几乎所有的语言特性,所以我不认为任何一种语言是新的.任何“新语言”对我来 ...

随机推荐

  1. ApplicationListener原理分析

    在 Nacos配置服务原理 文中结束时提到过通过发布 ApplicationListener 刷新事件完成 Context 中属性值的更新.那么本章我们一起分析 ApplicationListener ...

  2. VC++2017关于项目出现"const char *" 类型的实参与 "char *" 类型的形参不兼容错误的解决方法

    C++项目中经常会定义如下形式的字符串: char *texts[] = { "1. Open Account", "2. To Deposit Money", ...

  3. winform 中如何获取debug目录的路径

    项目中需要在debug启动目录创建文件夹,所以先获取debug路径: var debugPath = System.AppDomain.CurrentDomain.BaseDirectory;

  4. 22 Years of KDE

    22 Years of KDEhttps://timeline.kde.org/ http://www.kdedevelopers.org/

  5. audio隐藏下载按钮

    // 这个方法只支持 Chrome 58+, 低于该版本的是没有无法隐藏的 <audio src="/i/horse.ogg" controls="controls ...

  6. .Net高级工程师面试题

    ----------高级开发工程师岗位职责: 1.完成平台系统新功能模块开发,维护现有产品,独立地设计.开发.实现和测试关键系统: 2.负责公司项目核心代码的编写: 3.根据产品需求进行业务功能的开发 ...

  7. TreeMap——实现comparable接口并重写CompareTo方法

    public class TreeMapTest { public static void main(String[] args) { Map<Student,Integer> stude ...

  8. sftp上传文件(Renci.SshNet)和代理上传

    引用Renci.SshNet这个 封装的sftp类 public class SFTPHelper { #region 字段或属性 private SftpClient sftp; /// <s ...

  9. 【weixin】微信支付---Native支付模式二(PC端支付大多采用此模式)

    [模式二]:商户后台系统调用微信支付[统一下单API]生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易.注意:该模式的预付单有效期为2小时,过期后无法支付 模式二与模式一相比, ...

  10. python检测域名

    pip install python-whois import whois print(whois.whois('baidu.com')) #输出有关baidu.com的所有域名