一、git
1. git 常用指令
git status? ? ? ? 查看倉庫狀態
git add <文件名>? ? ? ? ? ? ? ? ?? ? 把文件添加到倉庫暫存區
git commit -m "信息"? ? ? ? ? ? ? ? 把文件加入倉庫
git push? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? 把本地倉庫同步到遠端
git pull? ? ? ? ? ? ? ???????????????? ? ? ? ?把遠端倉庫同步到本地
2.云服務器默認不安裝 C 靜態庫
sudo yum install -y glibc-static
sudo yum install -y libstdc++-static
二、調試器 gdb
gdb 調試需要程序是 debug 形式的
gcc / g++ 默認的發布模式是 release
通過 -g 選項,讓 gcc / g++ 以 debug 模式發布程序:
gcc -o test test.c -g
1.進入 gdb 調試
gdb <程序名>
(gdb) 下,輸入 quit 并回車即可退出,或 ^D 退出
2.查看代碼
(1)指定行? l / list
l 5? ?/? l code.c:5? ?/? list 5? ?/? list code.c:5? ? ? ? 查看 code.c 的第5行上下
通過按回車可以一直往下查看代碼
(2)指定函數
3.執行代碼
用 r / run 直接跑完程序
4.調試代碼
(1)斷點
b 19? ? ? ? ? ? ? ? ??? 在第19行設置斷點
b code.c:main? ? ? ? ? ? ? ? 給 main 函數打斷點
b code.c:19? ? ? ? 給指定文件的第19行打斷點
info b? ? ? ? ? ? ? ? ??查看所有斷點信息
d 1? ? ? ? 刪除編號為1的斷點
在一個調試周期中(gdb 不退出重進),斷點編號是線性遞增的。
如果已有1、2、3號斷點,刪去1、2、3號斷點后再打一個斷點,編號會是4而不是1.
disable 2? ? ? ? 禁用2號斷點????????????????????????enable 2? ? ? ? 啟用2號斷點
disable b? ? ? ? 禁用所有斷點???????????? ? ? ? ? ?enable b? ? ? ? 啟用所有斷點
(2)n (next) 逐過程????????s (step) 逐語句
都是讓代碼執行一行,但是 n 不會進語句中的函數,s 會進語句中的函數
n 逐過程:
s 逐語句:
(3)觀察變量
display <變量>? ? ? ? 常顯示變量? ? ? ? ? ? ? ? undisplay <編號>? ? ? ? 取消顯示
p <變量>? ? ? ? 暫時顯示變量的值
(4)until <行號>
直接跳轉到某一行
(5)c
(continue) 讓代碼從一個斷點執行到下一個斷點
(6)finish
直接運行完當前所在的函數
(7)watch <變量>
監視一個變量,當變量的值改變時,會顯示原先值和新值
(8)set var
set var e=5? ? ? ? 把變量 e 的值修改為 5
(9)條件斷點
新增一個條件斷點:
b <行號/函數名> if <條件>
把一個已有斷點設置為條件斷點:
condition <斷點編號> <條件>