Skip to content

Commit b0239d0

Browse files
committed
add(posts): 1
1 parent 16ab1eb commit b0239d0

9 files changed

Lines changed: 91 additions & 60 deletions

File tree

src/content/posts/FaaS/OpenFaaS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: OpenFaaS Week3
33
published: 2025-02-14
44
description: OpenFaaS 入门教程
5-
# image: ./cover.jpg
5+
image: ./images/cover1.png
66
tags: [FaaS, 教程]
77
category: FaaS
88
draft: false
@@ -54,7 +54,7 @@ kubectl get pods -n openfaas
5454
> POST /echo/primes:返回是否为质数。
5555
5656
main.rs:(我这里想实现一个2e7范围内判断质数的 `FaaS` ,需要手动配置 `Tokio` )
57-
```Rust
57+
```rust
5858
fn handler_service(req: Request<Body>) -> BoxFuture<'static, Result<Response<Body>, Infallible>> {
5959
Box::pin(async {
6060
match handler::echo(req).await {
68.5 KB
Loading

src/content/posts/OS/syscall/syscall.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
title: syscall Week2
33
published: 2025-01-22
44
description: syscall 概念
5-
# image: ./cover.jpg
65
tags: [syscall]
76
category: OS
87
draft: false

src/content/posts/docker/docker.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: docker Week1
33
published: 2025-01-20
44
description: docker 教程
5-
# image: ./cover.jpg
5+
image: ./images/cover1.png
66
tags: [docker, 教程]
77
category: 容器
88
draft: false
53.2 KB
Loading

src/content/posts/gdb/bomb.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22
title: CSAPP-bomb-lab
33
published: 2025-03-03
44
description: gdb & asm 优质Lab练习
5-
# image: ./cover.jpg
6-
tags: [gdb, Lab]
5+
image: ./images/cover-CSAPP.png
6+
tags: [gdb, Lab, CSAPP]
77
category: 调试工具
8-
draft: true
8+
draft: false
99
---
1010

11+
# phase_0 env
12+
```sh
13+
wget csapp.cs.cmu.edu/3e/bomb.tar # wget -O ./bomb.tar csapp.cs.cmu.edu/3e/bomb.tar
14+
tar xvf bomb.tar
15+
# Bomb Lab文件目录如下:
16+
# ├── bomb
17+
# ├── bomb.c
18+
# └── README
19+
```
20+
1121
> `la as` OR `x/5i $pc`
1222
# phase_1
1323
```sh

src/content/posts/gdb/command.md

Lines changed: 75 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,59 @@
11
---
22
title: gdb教程
3-
published: 2025-02-10
3+
published: 2025-02-24
44
description: gdb 命令
5-
# image: ./cover.jpg
5+
image: ./images/cover1.png
66
tags: [gdb, 教程]
77
category: 调试工具
8-
draft: true
8+
draft: false
99
---
1010

11-
## breakpiont
11+
## ⚡ 断点调试(Breakpoints)
1212
```sh
13-
b filename.cpp:10
14-
info b
15-
d 1
16-
disable 1
17-
enable 1
13+
b filename.cpp:10 # 在filename.cpp的第10行设置断点
14+
info b # 查看所有断点信息
15+
d 1 # 删除编号为1的断点
16+
disable 1 # 临时禁用1号断点
17+
enable 1 # 重新启用1号断点
1818
```
19-
## watch
19+
## 🕵️‍♂️ 观察点(Watchpoints)
2020
```sh
2121
info wat
2222
watch variable_name
2323
wa # (监视Race共享变量)
24-
wa buf if buf == nullptr
24+
wa buf if buf == nullptr # 条件监视:当buf为null时触发
2525
wa -location &shell.edit_pos
26-
(gdb) commands
26+
(gdb) commands # 自定义观察点行为
2727
> printf "x=%d at %s:%d\n", x, $_sargv[1], $bpnum # 用户态$_sargv[1]
2828
> continue
2929
> end
3030
```
31-
## run
31+
## 🚀 程序运行控制(run
3232
```sh
33-
start
34-
r
35-
n
36-
s
37-
si
33+
start # start 开始调试,在main函数处暂停
34+
r # run 开始/继续运行程序
35+
n # next 执行下一行(不进入函数)
36+
s # step 执行下一行(进入函数)
37+
si # step i 执行下一行指令(asm)
3838

39-
finish
40-
c
41-
q
39+
finish # finish 执行完当前函数并暂停
40+
c # continue 继续运行直到下一个断点
41+
q # quit 退出GDB
4242
```
43-
## info
43+
## 📊 信息查看与变量检查(info / print)
4444
```sh
45-
info b
46-
info rec
45+
info b # 查看断点
46+
info rec # 查看 record
4747

4848
info v
49-
info locals
49+
info locals # 查看当前栈帧的局部变量
5050

51-
p variable_name
51+
p variable_name # 打印变量值
5252
p &rax
53-
display
54-
list
53+
display var # 每次暂停自动显示变量
54+
list # 显示当前位置的源代码
5555

56-
info registers
56+
info reg # 查看寄存器值
5757
info threads
5858
thread 2
5959

@@ -62,7 +62,7 @@ draft: true
6262
> continue
6363
> end
6464
```
65-
## layout
65+
## 🖥️ 界面布局控制(layout
6666
```sh
6767
la src
6868
la asm
@@ -76,43 +76,65 @@ draft: true
7676
Ctrl X + 2
7777
Ctrl X + A
7878
```
79-
## record
79+
## ⏪ 执行记录与回放(record
8080
```sh
81-
rec full
82-
rec stop
83-
info rec
84-
rs
85-
rsi
81+
rec full # 开始记录完整执行历史
82+
rec stop # 停止记录
83+
info rec # 显示记录信息
84+
info fds # 显示当前进程打开的文件描述符
8685

87-
rec save filename
88-
rec restore filename
86+
rec save trace.gdb # 保存执行记录
87+
rec restore trace.gdb # 载入执行记录
8988

89+
rs # 反向单步执行
90+
rsi # 反向单条指令执行
9091
rec goto begin
9192
rec goto end
92-
rec goto 1
93+
rec goto 1 # 跳转到执行历史中的第15步
9394
rec delete
9495
```
95-
# env
96+
## 🔧 环境变量设置(env
9697
```sh
97-
set $source_file = "mysh.cpp"
98+
set $source_file = "mysh.cpp" # 定义自定义变量
99+
set environment LD_PRELOAD=mylib.so # 设置环境变量
98100
```
99-
# 并发
101+
## 🧵 并发调试技巧
100102
```sh
101-
thread id
102-
info threads
103-
set follow-fork-mode child #(自动追踪fork出的子进程)
104-
set detach-on-fork off + inferior
103+
thread id # 切换到线程id
104+
info threads # 查看所有线程
105+
b worker.cpp:20 thread 2 # 断点调试
106+
# 双进程调试模式
107+
set detach-on-fork off # 同时保留父子进程的调试控制
108+
inferior id # 切换到进程id
109+
info inferiors # 查看所有进程
105110

106-
set follow-exec-mode new
111+
# fork()处理策略
112+
set detach-on-fork off + inferior # 保留所有fork进程
113+
set follow-fork-mode child # 自动追踪fork出的子进程,(默认parent)
114+
# execve()处理
115+
set follow-exec-mode new # exec函数族创建一个新进程,(默认same)
107116

108-
info fds
117+
# 信号处理
118+
handle SIGINT print stop # 捕获SIGINT信号
119+
signal SIGINT # 手动发送信号(调试信号处理器)
120+
# 捕获特定系统调用
121+
catch syscall setpgid # 拦截进程组设置调用
122+
catch syscall tcsetpgrp # 拦截终端控制权转移
123+
call (int)tcgetpgrp(0) # 检查当前终端前台进程组
124+
p setsid() # 创建新会话(验证会话行为)
109125

110-
handle SIGINT print stop
126+
# 自定义
111127
catch syscall setpgid
112-
catch syscall tcsetpgrp
113-
call (int)tcgetpgrp(0)
114-
signal SIGINT
128+
commands
129+
printf "setpgid(%d, %d) by pid=%d\n", $rdi, $rsi, $rax
130+
continue
131+
end
115132

116133
break close
117-
bt # (程序崩溃/未预期行为/定位线程状况/)
134+
commands
135+
printf "Closing fd=%d\n", (int)$rdi
136+
backtrace
137+
continue
138+
end
139+
bt # 打印当前线程的调用栈 (程序崩溃/对未预期行为/定位线程状况/...)
118140
```
63.5 KB
Loading
6.03 KB
Loading

0 commit comments

Comments
 (0)