码迷,mamicode.com
首页 > 数据库 > 详细

用gdb来理解:值传递/指针传递/引用传递

时间:2018-04-24 11:46:39      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:UNC   显示   执行   back   void   log   产生   bsp   设置   

1. 常用的gdb命令
1)显示代码 - list
list 显示10行代码
list 1 显示1-10行,再键入list或者回车,显示下面10行代码
list 1,20 显示1-20行

2)设置断点 - break
break 15 在第15行设置断点
break func 在函数func()入口设置断点
info break 显示断点信息
delete 1 删除断点

3)
单步执行 - next/n
单步跟踪 - step/s
s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;
n: 执行一行源程序代码,此行代码中的函数调用也一并执行。

继续运行 - continue

4)打印变量值 - print
print a

5)查看函数堆栈 - backtrace/bt
bt n 显示栈顶n桢(frame)
bt -n 显示栈底n桢(frame)
frame n 显示第n帧的信息
info args 查看某函数栈框里面参数名及值
info locals 查看某函数栈框里面局部变量的值

退出函数 - finish
退出gdb - quit

 

2. 用gdb来理解:值传递/指针传递/引用传递
https://www.cnblogs.com/zjutzz/p/6818799.html

总结:

void myfun(int a)    //传值,产生复制
void myfun(int& a)   //传引用,不产生复制
void myfun(int* a)   //传地址,产生复制,本质上是一种传值,这个值是地址

 

用gdb来理解:值传递/指针传递/引用传递

标签:UNC   显示   执行   back   void   log   产生   bsp   设置   

原文地址:https://www.cnblogs.com/stellar/p/8927107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!