网站首页 站内搜索

搜索结果

查询Tags标签: rbp,共有 15条记录
  • math.h -lm随记(一)

    最近可能随手会记很多C/C++语法相关的东西,都是随手记的,如果后续有空可能会整理成文章。 1.关于gcc的lm编译选项: 观察易知,像stdio.h,stdlib.h或者math.h之类的头文件,包含的都是函数的声明而非定义。(关于声明和定义,详见之前《浅谈指针》的文章系列)而真正的…

    2022/9/3 23:26:26 人评论 次浏览
  • 从C过渡到C++——换一个视角深入数组[真的存在高效吗?](2)

    从C过渡到C++——换一个视角深入数组[真的存在高效吗?](2) C风格高效的数组遍历 在过渡到C++之前我还是想谈一谈如何书写高效的C的代码,这里的高效指的是C代码的高效,也就是在不开启编译器优化下,C层级的自由化,编译器优化固然很好,但是源代码的高效远远要胜于编译…

    2022/8/23 1:52:59 人评论 次浏览
  • X86汇编层面的方法调用。

    本文主要描述了X64下的汇编层面的方法调用。具体来说就是一个C语言的方法被另外一个方法调用,是如果在汇编语言X64的规范中实现的。 1.假设有如下C语言文件 "test.c"点击查看代码 int sumNine(int one, int two, int three, int four, int five, int six, int …

    2022/8/22 1:26:06 人评论 次浏览
  • C++中类的成员函数是如何调用this指针

    C++中类的成员函数是如何调用this指针 起因 最近工作中遇到一个有趣的闪退问题,原因很简单,就是因为调用了一个空对象的成员函数。但是在dump的堆栈信息里发现程序终止的地方并不是函数刚开始,而是在函数内部执行很多语句后才终止,类似于: class Example {// 不重要的…

    2022/7/10 14:50:42 人评论 次浏览
  • C++虚函数调用简单分析

    C++代码如下: class parent_parent { public:virtual int print() const{return 1;} };class sub : public parent_parent { public:int print() const override{return 0;} };int main() {parent_parent* p = new sub;p->print();delete p;return 0; }通过使用反汇编…

    2022/2/23 9:21:41 人评论 次浏览
  • Linux:ftrace: 为什么有些函数没有在available_filter_functions

    文章目录 例如:__run_hrtimer汇编例如:__run_hrtimer 这个函数其实有被用到,在函数__hrtimer_run_queues 中,有调用__run_hrtimer 但是在available_filter_functions 文件中就是没有 <sbc2048-fwp-a:root>/sys/kernel/debug/tracing: # grep __run_hrtimer av* …

    2022/1/5 7:06:04 人评论 次浏览
  • Linux:ftrace: 为什么有些函数没有在available_filter_functions

    文章目录 例如:__run_hrtimer汇编例如:__run_hrtimer 这个函数其实有被用到,在函数__hrtimer_run_queues 中,有调用__run_hrtimer 但是在available_filter_functions 文件中就是没有 <sbc2048-fwp-a:root>/sys/kernel/debug/tracing: # grep __run_hrtimer av* …

    2022/1/5 7:06:04 人评论 次浏览
  • 图解CPU执行一段程序

    程序执行 从打印出 Hello World 开始,程序如何运行起来,大家都很清楚。那么底层如何执行的呢,让我们一探究竟。 long main(){long a = 1;long b = 2;return a + b; }来一段 C 语言作为例子, gcc -S 生成汇编代码,简化如下。 pushq %rbp movq %rsp, %rbp movq …

    2021/12/20 14:49:45 人评论 次浏览
  • 图解CPU执行一段程序

    程序执行 从打印出 Hello World 开始,程序如何运行起来,大家都很清楚。那么底层如何执行的呢,让我们一探究竟。 long main(){long a = 1;long b = 2;return a + b; }来一段 C 语言作为例子, gcc -S 生成汇编代码,简化如下。 pushq %rbp movq %rsp, %rbp movq …

    2021/12/20 14:49:45 人评论 次浏览
  • 汇编看指针

    前言 开发中经常使用指针访问变量修改变量值, 那么编译器是怎么翻译指针的 或者说指针在汇编层面到底是什么 mov 和 lea 指令 指针的分析离不开这两个指令,简单看下mov指令 mov指令 GNU汇编器输出AT&T汇编时为 mov 指令添加了一个维度,在其中必须声明要传送的数据元…

    2021/11/19 20:12:53 人评论 次浏览
  • 汇编看指针

    前言 开发中经常使用指针访问变量修改变量值, 那么编译器是怎么翻译指针的 或者说指针在汇编层面到底是什么 mov 和 lea 指令 指针的分析离不开这两个指令,简单看下mov指令 mov指令 GNU汇编器输出AT&T汇编时为 mov 指令添加了一个维度,在其中必须声明要传送的数据元…

    2021/11/19 20:12:53 人评论 次浏览
  • 第5篇-调用Java方法后弹出栈帧及处理返回结果

    在前一篇 第4篇-JVM终于开始调用Java主类的main()方法啦 介绍了通过callq调用entry point,不过我们并没有看完generate_call_stub()函数的实现。接下来在generate_call_stub()函数中会处理调用Java方法后的返回值,同时还需要执行退栈操作,也就是将栈恢复到调用Java方法…

    2021/8/14 9:35:54 人评论 次浏览
  • 第5篇-调用Java方法后弹出栈帧及处理返回结果

    在前一篇 第4篇-JVM终于开始调用Java主类的main()方法啦 介绍了通过callq调用entry point,不过我们并没有看完generate_call_stub()函数的实现。接下来在generate_call_stub()函数中会处理调用Java方法后的返回值,同时还需要执行退栈操作,也就是将栈恢复到调用Java方法…

    2021/8/14 9:35:54 人评论 次浏览
  • 白话内存管理(一):从开国大典说起

    已有的介绍linux管理的文章很多,有些对内存管理的实现也讲解的非常透彻;但是多数文章对内存管理体系为什么会形成这样一个体系缺乏相应的简短介绍;或者介绍的过于繁杂,对入门者极不友好。本文试图以自己有限的理解,尽量以入门者的角度提出自己的困惑并一一解决,在解…

    2021/7/20 7:07:30 人评论 次浏览
  • 白话内存管理(一):从开国大典说起

    已有的介绍linux管理的文章很多,有些对内存管理的实现也讲解的非常透彻;但是多数文章对内存管理体系为什么会形成这样一个体系缺乏相应的简短介绍;或者介绍的过于繁杂,对入门者极不友好。本文试图以自己有限的理解,尽量以入门者的角度提出自己的困惑并一一解决,在解…

    2021/7/20 7:07:30 人评论 次浏览
扫一扫关注最新编程教程