• 用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)   //传地址,产生复制,本质上是一种传值,这个值是地址
  • 相关阅读:
    MATLAB2019a安装
    每日日报6
    HTML表格
    HTML常见表单元素
    HTML特殊符号
    CTF-WEB:攻防世界-bug(综合应用)
    CTF-WEB:文件上传和 webshell
    CTF-WEB:BurpSuite 工具应用
    CTF-WEB:后台扫描与备份泄露
    CTF-WEB:PHP 伪协议
  • 原文地址:https://www.cnblogs.com/stellar/p/8927107.html
Copyright © 2020-2023  润新知