File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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+ 这样总算会显示中文消息了
You can’t perform that action at this time.
0 commit comments