报错时配置:
/home/share/work/gdb-9.2/configure --disable-host-shared
--build=arm
--host=aarch64-linux-gnu
--target
=arm-linux --prefix=/home/share/work/gdb
修改后配置:
/home/share/work/gdb-9.2/configure
--build=aarch64
--host=aarch64-linux-gnu
--target
=aarch64-linux-gnu --prefix=/home/share/work/gdb --disable-host-shared --disable-libmcheck
板上运行时参看GDB的编译配置参数:
(gdb) show configuration
This GDB was configured as follows:
configure
--host
=aarch64-linux-gnu
--target
=aarch64-linux-gnu
--with-auto-load-dir=$debugdir:$datadir/auto-load
--with-auto-load-safe-path=$debugdir:$datadir/auto-load
--without-expat
--with-gdb-datadir=/home/share/work/gdb/share/gdb (relocatable)
--with-jit-reader-dir=/home/share/work/gdb/lib/gdb (relocatable)
--without-libunwind-ia64
--without-lzma
--without-babeltrace
--without-intel-pt
--without-mpfr
--without-xxhash
--without-python
--without-guile
--disable-source-highlight
--with-separate-debug-dir=/home/share/work/gdb/lib/debug (relocatable)
最关键的三个参数,--build、--host、--target,请把这三个参数与编译环境、运行环境配置好,不然容易运行失败。
刚开始学习Qt,在调试程序时提示not in
executable
format
:
file
format
not
recognized
在查找资料后发现是因为编译器(Compiler)使用了32 位版本的 MSVC,调试器(Debugger)却使用了64 位的 MinGW 的
GDB
,从而
GDB
不能调试 32 位程序而报错。
解决办法:
在 Qt 的 工具 - 选项 - 构建和运行 - Debuggers 选择 CDB(Debugging Tools for Windows),
不能自动检测到则手动添
近日,使用nlopt库(一个求最优解的C++库)时遇到的一个问题,已解决,与大家分享一下,并顺便作为自己的笔记吧(linux小白的学习笔记)。
首先,是调试时,代码写好后,在桌面编译器编译是没有问题的(用的是qt),正常输出结果。由于此代码最终需要在arm上运行,需要用交叉编译器进行编译,但是编译器一换到交叉编译器就报以下错误:
对于此报错一开始在网上搜了下,基本上可以确定是库识别不了的问题,由于代码的编写风格是C11的,这个交叉编译器是C99的,一开始以为是这样的问题,ok,按C99的风格改回来之后发
假设core文件和可执行程序在同一个目录,core文件为core.1234,可执行文件为test
1、执行命令
gdb
core.1234
提示core.1234 : not in
executable
format
:
File
format
not
recognized
2、
file
./test
提示 Reading symbols from test...
这个错误提示通常是在Linux系统中执行某个命令时出现的。它的原因可能是你正在尝试执行一个不存在的命令,或者是你的PATH环境变量没有设置正确。
如果你确认这个命令是存在的,可以尝试使用绝对路径来执行它。例如,如果你想执行的命令位于/usr/bin目录下,可以使用以下命令来执行它:
/usr/bin/command_name
另外,你也可以检查一下PATH环境变量是否设置正确。你可以使用以下命令来查看当前PATH环境变量的值:
echo $PATH
如果你的命令所在的路径没有包含在PATH环境变量中,你可以通过以下方式来添加:
export PATH=$PATH:/path/to/command_directory
其中,/path/to/command_directory是你的命令所在的目录。这个命令会将该目录添加到PATH环境变量中。但是这种方式只在当前的终端会话中有效。如果你希望将这个目录添加到PATH环境变量中,以便在每次打开终端时都能使用该命令,可以将上面的命令添加到你的shell配置文件中,例如~/.bashrc或者~/.zshrc等。
c++ 之warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘int*’