自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Respiration

博客

  • 博客(6)
  • 收藏
  • 关注

原创 gdb堆栈被破坏时的定位方法

gdb堆栈被破坏时的定位方法前几天碰到一个崩溃问题,利用coredump查看崩溃堆栈信息时,却发现堆栈被破坏了(gdb) bt#0 0x0000000f55555186 in ?? ()#1 0x0000000000000003 in ?? ()#2 0x0000000e00000000 in ?? ()#3 0x0000000000000000 in ?? ()不过正好还可以利用栈帧和寄存器的信息继续去定位崩溃原因,这里简单做下分享用到的一些命令和知识gdb的x命令x命令是用于

2021-12-09 00:10:21 3852 2

原创 C++20尝鲜-协程(二)

C++20尝鲜-协程(二)

2021-12-07 23:54:46 1161

原创 什么是栈帧

栈帧浅析什么是栈帧引用百度百科中的解释:栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。函数的每次调用,都有它自己独立的栈帧。栈帧中维持着函数调用所需要的各种信息,包括函数的入参、函数的局部变量、函数执行完成后应该返回到哪里等。运行时栈栈帧使用了栈这一数据结构,达到了后进先出(First In Last Out)的内存管理原则。不管是插入数据还是删除数据,都是在栈顶进行的。x86-64的栈由高地址向低地址增长,寄存器rbp指向当前栈帧的底部(高地址),寄存器rsp指向当前

2021-11-29 23:42:59 9670

原创 C++20尝鲜-协程(一)

C++20尝鲜-协程(一)什么是协程参考[cppreference](https://zh.cppreference.com/)的解释如下:A coroutine is a function that can suspend execution to be resumed later. Coroutines are stackless: they suspend execution by returning to the caller and the data that is required to

2021-11-27 23:29:34 1425

原创 C++四种强制类型转换

什么是显示转换有时我们希望显式地将对象转换为另外一种类型。例如,如果想在下面的代码中执行浮点数除法:int i,j;double slope = i/j;就要使用某种方法将i/j的结果显示地转换为double。这种方法称作强制类型转换。C风格的强制类型转换C风格地进行强制类型转换包含两种形式:type(expr);(type)type;C风格的强制类型转换从表现形式上来说不那么清楚明了,一旦出现问题,追踪起来比较困难。C++风格的强制类型转换C++风格的强制类型转换具有如下形式:

2021-11-25 00:32:33 6164 1

原创 auto类型推导

auto的作用auto是我在编码中经常使用到的C++11新特性之一,主要用于变量的自动类型推导,如auto num=3,则推导出num的类型为int32_tauto的优势相较于原始的显式类型去声明变量类型,auto的优势有以下几点:auto变量一定要被初始化,可以避免变量忘记初始化// auto i; // error: declaration of 'auto i' has no initializerauot i=1;

2021-11-25 00:27:20 1101 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除