zoukankan      html  css  js  c++  java
  • 用gdb来理解:值传递/指针传递/引用传递

    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)   //传地址,产生复制,本质上是一种传值,这个值是地址
  • 相关阅读:
    【日语】日语学习计划(转载)
    【日语】日语商务情景口语
    Nop常用知识点
    c#版在pc端发起微信扫码支付
    nopcommerce 常用属性验证
    @codeforces
    @codeforces
    @codeforces
    @codeforces
    @codeforces
  • 原文地址:https://www.cnblogs.com/stellar/p/8927107.html
Copyright © 2011-2022 走看看