clion

创建bazel 工程

代码风格

选中代码块

ctrl+alt+L

debug

可以查看调用栈

查看函数被谁调用

1.点被调函数

2.没有的话 可能是多态 点父类的函数看看

返回上一步操作

ctrl+alt+键盘左右键

变量

可以查看值

修改值

不能创建新的

查看类的子类

1.选中类名

2.ctrl+H

条件断点

一些设置

1.卡

关闭插件

堆内存调大

2.git 不同步

reload all from disk

3.代码提示

c++内存

1.内存分区

https://developer.aliyun.com/article/343804

2.内存泄露

1 概念

内存泄露:就是内存持续上涨的现象

内存溢出:内存不够用了

2 定位

原因

1.内存碎片

2.手动申请的内存没有释放

定位

1 tcmalloc

2 jemalloc

把jemalloc 编到包里

生成map 转成svg

对比变化

3 asan

4 valgrind

3.内存优化

分类

内存峰值

常驻内存

分析工具

valgrind 分析内存

pahole 分析内存

优化手段

https://blog.csdn.net/zju_fish1996/article/details/108858577

https://blog.csdn.net/weixin_41055260/article/details/118586493

core

1 概念

core

https://blog.csdn.net/u013554213/article/details/95959598

https://www.cnblogs.com/fanblogs/p/12658860.html

当程序发生崩溃时 系统会core dump

1.系统开启core dump

2.查询core dump文件路径

3.修改core文件的路径

SIG类型

https://c-cpp.com/c/program/SIG_types

2 定位

可能原因

1.指针二次释放

2.并发问题

3.内存访问越界

4.除0

5.野指针

定位

1.core在代码什么地方

1 有core文件

​ gdb 带符号表的包 core文件

​ bt

2 日志打印调用栈

minidump

3 没有core文件,日志也没有打印调用栈

1.计算地址偏移

需要日志dump出来core的函数地址和首地址

地址偏移=core的函数地址-首地址

2.根据地址偏移确定core函数

gdb

addr2line

addr2line -e 带符号表的包 地址偏移 -f -C

2.复现

3.分析解决

3 问题


:D 一言句子获取中...