為了快速定位程序問題,需要在RK3399開發(fā)板上編譯gdb16.2,并使用gdb16.2調(diào)試程序。
unsetunset編譯環(huán)境unsetunset
- Ubuntu24.04
- gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu
unsetunset前提條件unsetunset
- GDB官網(wǎng):https://sourceware.org/gdb/
- 源碼下載地址:https://sourceware.org/pub/gdb/releases/?C=M;O=D
- gdb16.2版本需要依賴高版本gmp和mpfr,因此需要先交叉編譯這兩個軟件。
unsetunset編譯gmp-6.3.0unsetunset
wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz
xz -d gmp-6.3.0.tar.xz
tar -xvf gmp-6.3.0.tar
cd gmp-6.3.0
./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/gmp --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib
make -j4
sudo make install
編譯mpfr-4.2.1
wget https://www.mpfr.org/mpfr-current/mpfr-4.2.1.tar.gz
tar -zxvf mpfr-4.2.1.tar.gz
cd mpfr-4.2.1
./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/mpfr-4.2.1 --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib --with-gmp=/opt/software/gdb-16.2-aarch64-10.2.1/gmp-6.3.0
make -j4
sudo make install
gdb16.2編譯
./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/gdb-16.2 --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib --with-gmp=/opt/software/gdb-16.2-aarch64-10.2.1/gmp --with-mpfr=/opt/software/gdb-16.2-aarch64-10.2.1/mpfr-4.2.1 CFLAGS="-I/opt/software/gdb-16.2-aarch64-10.2.1/gmp/include" CXXFLAGS="-I/opt/software/gdb-16.2-aarch64-10.2.1/gmp/include"
make -j4
make install