首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用openocd和contiker ng的gdb中的行号不正确。

问题描述: 使用openocd和contiker ng的gdb中的行号不正确。

解决方案: 该问题可能是由于源代码与编译后的二进制文件之间的不匹配导致的。以下是一些可能的解决方案:

  1. 确保使用的是与编译二进制文件相对应的源代码版本。如果源代码与二进制文件不匹配,行号可能会不正确。建议使用版本控制系统(如Git)来管理源代码,并确保在调试时使用正确的代码版本。
  2. 检查编译选项。在编译代码时,确保启用了调试信息(如-g选项)。如果没有启用调试信息,gdb可能无法正确解析行号信息。
  3. 确保使用正确的符号表。符号表包含了源代码和二进制文件之间的映射关系。在使用gdb调试时,确保使用与二进制文件相对应的符号表。可以使用objcopy工具从编译后的二进制文件中提取符号表,并将其与源代码一起使用。
  4. 检查openocd和contiker ng的配置。确保配置文件正确设置了调试选项,并且与硬件设备和目标平台相匹配。如果配置不正确,gdb可能无法正确解析行号信息。
  5. 尝试使用其他调试工具。如果问题仍然存在,可以尝试使用其他调试工具来调试代码。例如,可以尝试使用lldb或其他支持的调试器来查看是否存在相同的问题。

总结: 使用openocd和contiker ng的gdb中的行号不正确可能是由于源代码与编译后的二进制文件不匹配导致的。确保使用正确的源代码版本,启用调试信息,使用正确的符号表,并检查配置文件的设置。如果问题仍然存在,可以尝试使用其他调试工具进行调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Gitgdb使用

) 4.补充斧 a.git pull b.git status 二.gdb使用 1.releasedebug 2.使用 a.生成debug版 b.显示 c.断点 d.运行 三.总结 一.Git...如果是对Gitee已经存在文件做更改则只需要使用三板斧后两板斧即可。 二.gdb使用 在前面我们已经学过了vim编辑器,并且也在一直使用vim编写代码。...如果你服务器没有配置gdb使用sudo yum install -y gdb安装一下即可 1.releasedebug 在这里我创建一个mytest.cpp然后使用g++编译以后,想用gbd...b(打断点) info b(查看断点) d+断点编号(删除对应编号断点) d.运行 在Windows下调试分为逐过程逐语句,gdb同样可以,此外gdb还支持单独调试某一个函数这样功能。...gdb使用,掌握以上指令就已经足够我们日常使用了。

39100

linuxgdb入门使用教程

前言 gdb是linux下非常好用一个调试工具,虽然它是命令行模式调试工具,但是它功能强大到你无法想象,这里简单介绍下gdb使用方法,需要朋友们下面来一起看看详细介绍吧。...如果打印数组,由于默认设置,可能打印数组尾部部分没有显示,可以通过如下命令设置打印数组最大长度 (gdb) set print elements 300 调试查看代码 list function...如果能够在运行同时显示代码就好了, 答案是肯定. 使用如下命令启动gdb: gdb -tui 项目名 或者在启动gdb后, 输入命令focus,如图: ?...恢复程序运行单步调试 在gdb调试步进相关命令主要有如下几条: continue 继续运行程序直到下一个断点(类似于VS里F5) next 逐过程步进,不会进入子函数(类似VS里F10)...threadno指定了线程ID,注意,这个ID是GDB分配,你可以通过”info threads”命令来查看正在运行程序线程信息。

1.9K31

蜂鸟E203系列——Linux调试(GDB+Openocd

本文基于文章《蜂鸟E203系列——Linux下运行hello world例程》 GDB 简介 GDB(GNU Project Debugger),是 GNU 工具链调试软件。...GDB 可以用于在主机 PC Linux 系统调试运行程序,同时也能用于调试嵌入式硬件,在嵌入式硬件环境,由于资源有限,一般嵌入式目标硬件上无法直接构建 GDB 调试环境(譬如显示屏...GDB 常用指令表 命令 描述 load file 动态连接file jump 使当前程序跳转到某一行或某个地址 info br 查看断点信息 break function 在指定函数或行号设置断点...简介 为了能够支持 GDB 对其进行调试, 蜂鸟 E203 使用 OpenOCD 作为其 GdbServer 与 GDB 进行配合。...OpenOCD (Open On-Chip Debugger) 是一款开源免费调试软件,由社区共同维护,由于其开放开源特点,众多公司个人使用其作为调试软件,支持大多数主流 MCU 硬件开发板

1.7K20

树莓派JTAG详细使用笔记

通过jlink+openocd调试树莓派4。之后就可以通过gdb指令调试树莓派4程序了。...工欲善其事,必先利其器,有了更好工具,让开发程序变得更加稳定,同时也在后期对程序进行定位分析时候,也能很容易进行程序跟踪。 ? 1 下面来详细描述一下环境搭建与使用。...2.环境准备 对于gdb使用,建议在Ubuntu上进行,这样支持更加友好。所以本次实验软件部分主要是在Ubuntu上进行环境搭建与开发。...10 主要注意是三个端口连接,这里控制openocd采用telnet,连接gdb端口采用3333。 「第三步:通过telnet加载固件」 此时需要通过telnet去load内存镜像到内存。...「第四步:启动gdb调试」 在另外一个控制台输入 aarch64-elf-gdb ?

4.5K20

使用OpenOCD

openocd使用介绍 一款调试工具 1.环境 默认已经搭建好了开发环境,使用brew安装好了openocd 各种介绍网上有很多这里就不多说 下面是我openocd安装路径/usr/local/...Homebrew/share/openocd 一会要用到 2.使用 这部分仅介绍使用,具体更深层次介绍,可以看以后介绍 a.连接设备 连接stm32开发板之后使用命令连接openocd -f /usr...Target voltage: 3.240865 Info : stm32g0x.cpu: hardware has 4 breakpoints, 2 watchpoints Info : starting gdb...server for stm32g0x.cpu on 3333 Info : Listening on port 3333 for gdb connections b.使用telnet连接openocd...在openocd连接成功后会发现这条信息,就可以使用telnet通过4444端口,连接openocd了 Info : Listening on port 4444 for telnet connections

2.3K30

arm程序如何调试_arm开发板用什么语言

在每年1月底到2月旬,7月、8月是淡季,每天访问量基本都在100以下,其它时间都是旺季,尤其9月3月,每天可以到200以上,最高甚至500。...GDB使用GDB工具链,调试解决方案结构是 GDB前端GDBGDB服务程序JTAG协议转换器(仿真器)目标CPU(ARMCPU)...但幸运是,有很多热心开发者为GDB写了一些图形“外壳”——GDB前端,大大方便了GDB使用。...GDBGDB服务程序之间连接方式可以是以太网或者串口,而且GDB服务程序一般还有别的控制接口,例如Telnet接口,可以实现对目标CPU控制,如初始化程序文件下载等。...正常使用,我们还需要2个脚本,第一个是OpenOCD配置脚本,这个脚本作用是配置GDB服务程序、JTAG仿真器。

1.3K20

C语言(GDB调试器使用段错误定位)

项目研发过程,不可避免地会出现或多或少问题,有些比较简单可以目测,有些复杂一点,就需要使用特殊工具——调试器(比如GDB)来协助了。...1,将待调试代码使用 -g 来编译,举例: gcc debugme.c -o debugme -g 2,使用 gdb 启动待调试代码: gdb ....程序运行时诸多逻辑错误,段错误(segmentation fault)是最为常见也最难应付错误,在编辑代码时多加小心防范于未然当然是最好了,但在出错之后,如何利用gdb快速定位也是一个不错亡羊补牢实用技巧...core文件,直接定位出错位置,举例: gec@ubuntu:~/test$ gdb ..../debugme core GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1 …… …… #0 0x0804845c in index_to_the_moon

2.3K20

ODrive开发 #1 ODrive固件开发指南

: 用于调用 tup Tup: 用于调用编译命令构建系统 ARM GNU Compiler: 对于交叉编译代码 ARM GDB: 用于调试代码并在设备上逐步执行 OpenOCD: 用与使用STLink...install tup brew install openocd Windows 注意: 确保这些程序不仅已安装,而且正确添加到您环境变量PATH。.../tools/test-rig-parallel.yaml 代码调试 如果您使用是VSCode,请确保您具有Cortex Debug扩展插件,OpenOCDSTLink。...VSCode将从工作空间中获取正确设置并自动连接ODrive。 可以在VSCode以图形方式添加断点。 运行 make gdb。 这将重置并在程序启动并暂停。 现在,您可以设置断点并运行程序。...如果您知道如何使用gdb,那就再好不过了。 配置集成开发环境 开发ODrive代码,不需要IDE,但是建议使用开源IDE VSCode。 也可以使用Eclipse。

2.4K30

arm裸板驱动总结(makefile+lds链接脚本+裸板调试)

在裸板2440,当我们使用nand启动时,2440会自动将前4k字节复制到内部sram,如下图所示: 然而此时SDRAM、nandflash控制时序等都还没初始化,所以我们就只能使用前0~4095...0x30000000处,0x30000000就是我们SDRAM基地址,而一上电后,nand前4k地址会被2440自动装载到内部ram,所以我们初始化了sdramnand后,就需要把程序所有内容都复制到链接地址...  在linux,使用arm-linux-gdb软件 在win7,则使用arm-none-eabi-gdb软件 使用GDB工具,就不需要像上个OCD调试那么麻烦了 1)比如说,想在“int i=0;...通过Makefile里arm-linux  -g 来,         -g:表示生成编译文件里包含gdb调试信息 然后我们将上面第1节Makefile修改,如下图: 3)使用gdb之前,需要保证...: 1.调试源码里面的内容必须位于同一个链接地址上, 各个段也要分开存储,调试链接脚本上面第2节类似, 2.如果程序链接地址是SDRAM, 使用openocd初始化SDRAM 4)常用命令如下所示

1.4K90

【Linux】Linux调试器-gdb使用

背景 程序发布方式有两种,debug模式release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上-g选项...初次使用时,需要先安装: sudo yum install -y gdb 使用 注意使用gdb时,调试是debug模式。...指令 list/l 行号:显示源代码,后续直接回车会接着上次位置往下列,每次列10行。l后面可以接数字(行号)。 list/l 函数名:列出某个函数源代码。 r或run:运行程序。...(或bt):查看各级函数调用及参数 info(i) locals:查看当前栈帧局部变量值 quit:退出gdb 我们打断点后,如果要删,需要 d 断点序号。...在调试过程是可以修改变量,用set var 修改变量。通常用来判断循环条件,这样做可能会导致最终不正确

12100

GDB那些奇淫技巧

通常设置为step模式可解决单步调试问题。 程序运行 我经常用到一个功能是需要使用 gdb 执行某个程序,并且能精确控制程序参数,包括命令行、标准输入环境变量等。...这在 gdb 可以使用environment参数,不过需要注意是该参数设置是以空格为切分而不是传统以=对环境变量赋值。...(gdb) run 后记 对于二进制研究人员来说,gdb 是一个锋利好工具,支持X86、ARM、MIPS、RISCV、Xtensa等各种常用不常用系统架构,对其熟练使用有时候可以达到事半功倍效果...比如下面的截图就是我曾经用 gdb + OpenOCD 来调试 ESP32固件示例: Xtensa指令集调试 ESP32是比较少见Xtensa指令集架构,上面的拓展都不支持,不过 gdb 本身支持...删除行号断点 clear basic.c:101 删除文件名行号断点 clear basic.c:main 删除文件名函数名断点 clear *0x00400448 删除内存地址断点

1.1K20

在 CLion 创建基于 CubeMX STM32 工程

一、OpenOCD 安装 OpenOCD Windows 版是解压就能用。一共两个步骤: 1、解压到目标路径; 2、将 bin 加入到环境变量。 ?...2、通过事先准备,安装过程中会自动识别到 mingw 工具链 注意手动换 arm-none-eabi-gdb.exe 调式工具。 ?...使用 CLion 创建基于 CubeMX STM32 工程 1、新建工程 ? ? ? ?...2、STM32CubeMX 操作 这里与正常使用 STM32CubeMX 一样,只是有一点要注意:换芯片后要去覆盖原来自动生成工程。 ? ? ? 3、配置 OpenOCD ? ? 4、写代码 ?...从使用体验上来说,CLion 与本文各个组件配合之下感觉上完全不下于 IAR、MDK 调试体验,而从编辑器角度讲的话简直甩 IAR、MDK 几条街。

3.3K20

手把手教你搭建织女星开发板RISC-V开发环境

本篇文章介绍一下,Windows环境下搭建基于Eclipse + RISC-V gcc编译器RISC-V开发环境,配合openocd调试软件,可以实现RISC-V内核程序编译、下载调试。...Eclipse则不需要安装,后面的几个软件都是压缩包形式,只需要解压到对应位置,就可以直接使用,不需要安装。...安装Eclipse及工具链、调试工具 由于这些软件都是解压后就可以直接使用,为了简化操作步骤,我已经把这些软件放在了一起,并压缩成了一个文件,直接解压就可以使用。...如果还不能正常打开,可以尝试在环境变量添加JAVA_HOME变量,变量值为jre目录下bin文件夹,我是在: F:\VEGA_Board\IDE\jre\bin,然后重新打开Eclipse。...配置编译链路径 Eclipse正常打开后,还需要配置编译工具调试软件路径。

1.1K20

toString().intern()intern()作用使用

在Java,toString().intern()​这个表达式通常用在一个对象字符串表示上,用于将该字符串对象放入字符串池(String Pool),并返回字符串池中该字符串引用。...默认实现通常返回类名对象内存地址哈希码形式,但很多类会重写这个方法以提供更有意义字符串表示。例如,一个Person​类可能会重写toString()​方法来返回人名字年龄等信息。...使用场景目的: 内存优化: 通过复用字符串池中字符串,可以减少多个相同内容字符串实例,从而节省内存。...一致性: 在某些需要确保字符串唯一性或比较相等情况场景下,使用intern()​可以帮助维持数据一致性。..."Hello" 需要注意是,过度使用intern()​可能导致内存占用增加,尤其是在处理大量唯一字符串时。

7310
领券