当前位置: 首页 > article >正文

linux自用小手册

一、GDB常用命令

        想用gdb调试C或C++程序,编译时需要加-g选项,编译出的文件为debug状态(如果不加则是release状态),且不可以加-O选项进行优化。

命令简写解释
set args

设置程序传递的参数

例:./demo -v value -o a.out 传递了四个参数

breakb

设置断点

例:b 20  在20行打断点

runr开始运行程序(遇到断点停止)
nextn执行当前行语句(如果当前为函数调用,则不会进入函数内部)
 steps

进入函数内部执行一行语句

(如果为第三方库,进不去

printp

打印某个变量的值

例:p i    打印当前变量i的值

continuec

继续执行到下一个断点

set var

设置变量的值(针对已有变量)

假设程序中存在变量i

set var i=100   将变量i设置为100,然后继续调试

quitq退出gdb
backtracebt

查看函数调用栈

二、GDB调试core文件

        当执行一个程序时,可能会因为内存越界而崩溃。但此时没有错误信息,我们无法调试。通过生成的core文件,可以看到导致崩溃的具体代码。

        默认系统是不生成core文件的,可以通过以下命令打开

ulimit -c unlimited

        再运行后,即使崩溃,也会在当前目录生成core.XXX的文件。调试方式如下:

gdb core.XXX ./demo

        此时在gdb中会显示崩溃行的具体代码。

三、GDB调试正在运行的程序

四、静态库与动态库

        (注意:[ ]表示可选项,{ }表示必选项)

目的选项命令
链接.h文件-Ig++ main.cpp [ -I .h所在目录 ]
编译静态-c

g++ -c myKu.cpp -o libmyKu.a

(注意:动态库一般以.a作为尾缀,lib作为前缀)

编译动态-fPIC -shared

g++ -fPIC -shared myDKu.cpp -o libmyDKu.so

(注意:动态库一般以.so作为尾缀,lib作为前缀)

链接静态

-L

-l

g++ main.cpp [ -L 库所在路径 -l 库名称 ]

(注意:不是完整的库名,而是去掉前缀lib和尾缀.so或.a的库名)

链接动态

-L

-l

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:库所在目录

(注意:以上语句是将动态库所在目录包含到库路径中)

g++ main.cpp [ -L 库所在路径 -l 库名称 ]

(注意:不是完整的库名,而是去掉前缀lib和尾缀.so或.a的库名)

 五、tmux开启多个窗口

首先使用tmux命令打开多行窗口,然后在以下选项中选择:

        1.按住Ctrl+B,再按 " 表示垂直开启另一个窗口

        2.按住Ctrl+B,再按 " 表示垂直开启另一个窗口

(切换窗口Ctrl+B,再按方向键)(退出则输入exit)


http://www.kler.cn/news/330742.html

相关文章:

  • ZYNQ: GPIO 之 EMIO 按键控制 LED 实验
  • Elasticsearch使用Easy-Es + RestHighLevelClient实现深度分页跳页
  • 【热门主题】000002 案例 JavaScript网页设计案例
  • 如何在 Kubernetes 上部署和配置开源数据集成平台 Airbyte?
  • LampSecurityCTF7 靶机渗透 (sql 注入, 文件上传, 密码喷射)
  • vue单点登录异步执行请求https://xxx.com获取并处理数据
  • 博文汇总目录
  • C语言自定义类型结构体
  • 茴香豆 + Qwen-7B-Chat-Int8
  • 高级架构师面试题
  • 第24天sql注入(小迪安全学习)
  • GPT与大模型行业落地实践探索
  • OpenCV视频I/O(13)视频采集类VideoCapture之等待多个视频流中的任意一个变为可用状态函数waitAny()的使用
  • HKMG工艺为什么要用金属栅极?
  • 【Android】浅析六大设计原则
  • C++中的类型推导:auto 和 decltype 介绍
  • 如何理解矩阵的复数特征值和特征向量?
  • 【60天备战2024年11月软考高级系统架构设计师——第35天:系统安全设计——安全设计模式】
  • quiz: python网络爬虫之规则1
  • 【H2O2|全栈】关于CSS(8)CSS3扩充了哪些新鲜的东西?