Skip to content

Commit d637e52

Browse files
committed
Refine docs
1 parent 3e22163 commit d637e52

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

docs/development.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,49 @@ qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic
141141

142142
/usr/local/bin/gdbserver 10.0.2.15:20600 /opt/codebang/share/a.out
143143

144+
/usr/local/bin/gdbserver --multi 10.0.2.15:20600 &
145+
144146
在主机端使用 gdb-multiarch 连接
145147

146148
gdb-multiarch /opt/codebang/share/a.out
147149
(gdb) target remote localhost:20600
148150
(gdb) c
149151

152+
gdb-multiarch
153+
(gdb) target extended-remote localhost:20600
154+
(gdb) set remote exec-file /opt/codebang/share/a.out
155+
(gdb) run
156+
150157
## glibc arm64 调试
151158

152159
安装包含调试符号的开发包
153160

154161
apt install libc6-dev-arm64-cross libc6-dbg-arm64-cross
155162
dpkg -L libc6-dbg-arm64-cross
163+
164+
目前的方式是替换 `/usr/aarch64-linux-gnu/lib/libc-2.31.so` 为调试版本
165+
`/usr/aarch64-linux-gnu/lib/debug/lib/aarch64-linux-gnu/libc-2.31.so`
166+
167+
还需要把 `glibc-2.31` 的源码拷贝到 `/opt/codebang/build` 下面,然后在 `gdb` 中设
168+
`sysroot``substitute-path` ,这样就可以正确显示符号
169+
170+
(gdb) set debug aarch64 on
171+
(gdb) set sysroot /usr/aarch64-linux-gnu
172+
(gdb) set substitute-path /build/cross-toolchain-base-vwSSmv/cross-toolchain-base-43ubuntu3.1 /opt/codebang/build
173+
(gdb) file /opt/codebang/share/a.out
174+
(gdb) start
175+
176+
## gcc 显示中文错误信息
177+
178+
增加中文支持,修改 `/etc/locale.gen` , 把 `zh_CN.UTF-8` 所在的行注释去掉,然后
179+
运行
180+
181+
locale-gen
182+
183+
因为默认使用的 `gcc-9` ,所以 `gcc` 总是去找 `gcc-9.mo` ,但是默认装的只有
184+
`gcc.mo` ,所以需要人工创建一个连接
185+
186+
cd /usr/share/locale-langpack/zh_CN/LC_MESSAGES/
187+
ln -s gcc.mo gcc-9.mo
188+
189+
这样总算会显示中文消息了

0 commit comments

Comments
 (0)