This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM48L952:具有 XDS GDB 代理的 Gdb 软件断点

Guru**** 2326910 points
Other Parts Discussed in Thread: RM48L952
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/587233/rm48l952-gdb-software-breakpoints-with-xds-gdb-agent

器件型号:RM48L952

大家好、

我正在尝试使用 gdb 在 RM48L952 HDK 上进行调试。

我在 CCS 中制作了一个简单的项目、在这里我读出一个按钮(GIOA 7)并写入其中一个 LED (NHET1 18)。 我在 CCS 中使用 TI ARM 编译器编译了源代码。 这会为我提供一个.out 文件(elf 文件)。

如 http://processors.wiki.ti.com/index.php/XDS_GDB_Agent 中所述,我使用 gdb_agent_console.exe 打开 gdb 服务器,其中包含用于连接测试的.dat 文件。

我们可以使用兼容 ARM 的 gdb 连接到目标、我们可以加载.out 文件、我们可以单步执行、继续并放置硬件断点。

问题是我们无法使用软件断点,gdb 将以如下方式进行响应:

警告:
无法插入断点0。
无法访问地址0x6794上的存储器

其中地址0x6794是.elf 文件.txt 段中断点的地址。

我对此有一些疑问:

1) 1)对于 GDB 代理、RM48是否从 RAM 运行代码?

2) 2) 2)从闪存执行时、您是否只能使用软件断点?

3) 3)我们如何使用 RM48上 GDB 内的软件断点?

我们希望将 RM48连接到 Linux 服务器、在该服务器中、我们可以使用 gdb 内的 python 脚本运行自动测试、使用 XDS GDB Agent 似乎是执行此操作的最简单方法。

此致、

Karel

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Karel、

    诚然,我不是全球开发银行的专家。 这是有关以下帖子以及论坛中其他帖子的一些其他信息、您可能会发现这些帖子对您有所帮助。 有关其他帖子、请搜索 GDB 调试。

    e2e.ti.com/.../378955
    e2e.ti.com/.../462387)

    我还将您的帖子转发给了我们的调试团队、以便他们也可以查看是否有其他指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Karel、

    我有几个问题。

     -您正在使用哪个调试探针(xds100v2、xds2xx、...)?

     -您正在使用哪个版本的仿真软件包?

    一般情况下、GDB 代理只遵循 GDB 所指示的操作。  GDB 代理不包含 RM48的闪存支持、因此无法在 GDB 会话内完成将程序下载到闪存或在闪存程序中设置软件断点。  如果要调试此类程序、则需要使用外部闪存加载程序将其在启动 GDB 之前导通到目标上。

    答案:

    1) 1)对于 GDB 代理、RM48是否从 RAM 运行代码?  

    如果应用程序构建为从 RAM 运行、则会发生这种情况。  如果您通过其他方式将闪存中的代码放入目标、则可以对其进行调试。

    2) 2) 2)从闪存执行时、您是否只能使用软件断点?

    您只能将硬件断点与闪存中的程序一起使用。

    3) 3)我们如何使用 RM48上 GDB 内的软件断点?

    如果程序从 RAM 运行、您可以使用软件断点。  如果从闪存运行、则需要使用硬件断点。  GDB" 设置断点自动硬件开启"在 执行源代码级单步执行时尤其有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答、

    我们将使用 www.ti.com/.../tmdsrm48hdk 上的 XDS100v2、
    XDS 仿真软件包6.0.579.0版(Windows)。

    如果无法设置 SW (只读存储器)、"设置断点自动硬件打开"会设置硬件断点、但 gdb 似乎无法识别存储器区域。 这些区域列在 CCS 生成的.map 文件中、因此我们必须将它们插入 gdb。

    我今天不在办公室、因此我将在明天检查这是否能修复它。

    此致、

    Karel
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    感谢您的参考、.dat 文件看起来工作正常。 我按照建议从 CCS 借用了 testBoard.dat。

    此致、
    Karel
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Craig、您好!

    我附加了我尝试调试的程序和我正在使用的.dat 文件。 我使用 CCS 将程序写入闪存。 然后运行:

     gdb_agent_console.exe testBoard.dat

    这将在端口55000上打开一个 gdb 服务器。

    然后、我打开一个 gdb 会话:

    (gdb)目标远程192.168.96.101:55000
    使用192.168.96.101:55000进行远程调试

    (gdb)文件/home/karel/Hercules/gdb_test/Debug/gdb_test.out
    正在调试一个程序。
    是否确定要更改文件? (Y 或 n) y
    从/home/karel/Hercules/gdb_test/Debug/gdb_test.out...done.读取符号

    之后、我手动定义存储器区域、以便使用硬件断点


    (gdb)内存0x20 0x6e18 ro
    (gdb)内存0x80000 0x0 RW
    (gdb)信息内存
    使用用户定义的存储器区域。
    数字 ENB 低地址高地址属性
    1 y 0x00000020 0x00006e18 ro nocache
    2 y 0x08000000 0x100000000 RW nocache

    这些地址源自 CCS 生成的.map 文件:

    存储器配置

    名称             原点        长度        已使用        未使用    的属性    填充
    ------------       ----         ------         ----         ----         --------     
    矢量      00000000    00000020    00000020    00000000      X
    FLASH0          00000020    0017ffe0    00006df6    001791ea   R X
    FLASH1        00180000    00180000    00000000    00180000   R X
    堆栈          08000000    00001500    00000000    00001500   RW
    RAM              08001500    0003eb00    00000014    0003eaec    RW


    段分配映射

     运行 origin     load origin   length    init length    atts    members
    ------         ------     ------     ------     ----         ----
    00000000    00000000    00006e18 00006e18    r-x
    00000000    00000000    00000020 00000020    r-x    .intvecs
    00000020    00000020    00006896  00006896    r-x    .text
    000068b8    000068b8    00000540 00000540    r-    .const
    00006df8    00006df8  00000020  00000020    r-    .cinit
    08001500   08001500  00000014  00000000    rw-
    08001500   08001500  00000014  00000000    rw-    .data

     

    然后、我在 sys_main.c:82 (无限 while 循环内部)上添加一个断点


    (gdb) b sys_main.c:82
    0x6784处的断点1:文件./source/sys_main.c、第82行。
    (gdb) c
    继续。
    注意:自动为只读地址使用硬件断点。

    最后一行是我们所期望的和我们所希望的一样。


    断点1、main ()、位于./source/sys_main.c:82
    82   gioSetBit (hetPORT1、18、val);

    此时、我希望能够使用 gdb 的调用命令调用函数。


    (gdb)调用 gioSetBit((GioPORT_t*) 0xfff7b84c,18, 0)
    无法写入寄存器"F7";远程故障回复"E09"

    在 gdb_agent_console 终端中,我收到此消息:

    命令格式错误:P

    问:是否可以使用 gdb 中的 CALL 命令来调用远程 Hercules 目标上的函数? 如何实现?

    此致、

    Karel

    e2e.ti.com/.../3482.gdb_5F00_test.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Karel、

    gdb 代理似乎不支持 gdb 所需的所有远程过程调用寄存器。 我将获得一个 Hercules 目标并进一步调查。 我能问一下您使用的是哪个 gcc 工具链吗?

    此致、
    Craig
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Craig、

    我们重新编译了 gdb 7.12.50。

    我们启用了 gdb 代理的详细模式。  在 gdb 中,如果我们要求提供信息寄存器,则会得到 r0 - R13 + SR + LR + PC +CPSR,指示目标说明列出了具有‘org.gnu.gdb.arm.core’功能(非 M-profile ARM 目标) 的 CPU (来自  )  

    发生错误时,我们会在 gdb 代理上看到以下信息:

    >>>  %%P17=0000000000000000000000000#75
    命令格式错误:P
    <<< $E09#00

    其中:

    ‘μ A n…=r

    写入寄存器  n…  阻值 为 r…。 寄存器编号  n 为十六进制、 r…  包含寄存器中每个字节的两个十六进制数字(目标字节顺序)。

    从中删除  

    希望这对您有所帮助、

    此致、

    Karel

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:

    我们注意到、如果我们将写入寄存器17的零数量(该数量应与宽度相对应)减少到8个零(32位)、那么 gdb 代理(和 CPU)将接受它。 我们尝试将相同数量的零(24)写入寄存器18、它也会返回相同的错误。 请注意、这些寄存器编号都是十六进制的、因为这是在 gdb 和 gdb 代理中写入它们的方式。

    从寄存器读取时、返回值的长度会有所不同(随着寄存器编号的增加、长度会变短)。 似乎 gdb 不能识别这些寄存器为32位宽。

    gdb 代理似乎告诉 gdb、该架构具有 FPA (它没有 FPA)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Karel、

    感谢您提供更多信息。 从我看了这件事已经有一段时间了、因此我很抱歉。

    寄存器17对应于 F7。 对吧? 问题似乎在于、单独写入寄存器时、gdb-agent 不会为寄存器接受超过32位的数据、即使 f0-F7、fps 都是96位。

    寄存器 F7是'org.gnu.gdb.arm.fPA'功能的一部分。 出于某些原因、我不记得我们正在返回这些寄存器的占位符以响应寄存器信息命令、即使我们没有尝试在目标上访问这些寄存器。 gdb 如何确定 RSP 服务器支持的功能集? 这是否完全基于对寄存器信息命令的响应的大小?

    我仍在等待硬件(我远程工作、无法直接访问该目标)。

    -Craig
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Craig、

    寄存器 F7对应于 org.gnu.gdb.arm.fPA 功能中的寄存器0x17 (十进制23)、在 gdb 中、我们可以看到这一点、而 gdb 也显示了正确的长度(96)。

    我们正在研究 gdb 如何确定这一点,它可以使用 qSupported 数据包( )来确定某些事项。

    (我们看到此数据包进入 gdb 代理、但我们看不到任何与 FPA 或正在进行通信的任何内容相关的数据包。)

     似乎这是通过“目标远程...”完成的。 命令  ()  

    此致、

     

    Karel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:

    通过使用正确的架构/功能(VFP)更改 gdb 中的目标描述、我们能够成功调用函数。

    在第三个函数调用后,gdb 代理停止工作,不再响应。

    GDB_AGENT_DISPLAY_LEVEL = 100时的 gdb 代理输出低于此消息。

    我们将其称为 gioSetBit (0xFFF7B84C、18、1) 、位于0x0000561c

    (您可以看到参数被写入寄存器、PC 被相应设置)。

    在第三次调用时,gdb 代理会在>>>%$c#63停止

    此致、

    Karel

    >>>%$p1a#02
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1b#03
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1c#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1d#05
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1e#06
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1f#07
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P20#D2
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P21#D3
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P22#D4
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P23#D5
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P24#d6
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P25#D7
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p26#D8
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p27#D9
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P28#da
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P29#db
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2a#03
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p2b#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2c#05
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2d#06
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2e#07
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p2f#08
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P30#D3
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P31#D4
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P32#D5
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P33#d6
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p34#D7
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p35#D8
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p36#D9
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P37#da
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p38#db
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p39#dc
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p3a#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%PE=fc5c0000#13
    <<<$OK#00
    >>>%%P0=4cb8f7ff#57
    <<<$OK#00
    >>>%%P1=12000000#41
    <<<$OK#00
    >>>%%P2=01000000#40
    <<<$OK#00
    >>>%%PD=f00f0008#E5
    <<<$OK#00
    >>>%$m5cfc、4#2e
    <<< 2美元 bffeb#00
    >>>%$PF=1c560000#B2
    <<<$OK#00
    >>>%1$z1,5cfc、4#78
    尝试在地址= 0x5cfc 处设置硬件断点。
    SetHWBP()
    SetHWBP()返回 JobID=0
    在地址= 0x5cfc 处设置新的 CTOOLS 硬件断点。 作业 ID = 0。
    <<<$OK#00
    >>>%$c#63
    <<<$T050f:fc5c0000;#00
    >>>%$g#67
    <<<$4cb8f7ff010000000100000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400f00f0008fc
    5c0000fc5c0000#00
    >>>%%P0=00000000#3D
    <<<$OK#00
    >>>%$P1=070000#45
    <<<$OK#00
    >>>%$P2=00000000#3f
    <<<$OK#00
    >>>%%PC=07000000#77
    <<<$OK#00
    >>>%%PD=f80f0008#ed
    <<<$OK#00
    >>>%%PE=7c670000#b9
    <<<$OK#00
    >>>%$PF=7c670000#BA
    <<<$OK#00
    >>>%%P19=df010020#E4
    <<<$OK#00
    >>>%1$z1,5cfc、4#98
    clear_hwbp (5cfc)被调用
    CLEAR_hwbp:找到 BP
    clear_hwbp:参考计数:1.
    调用 KillJob(0)
    <<<$OK#00
    >>>%%$m677c、4#D4
    <<<$000050e3#00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在执行继续命令之后、执行看起来从未停止。  要么是在函数末尾未成功设置硬件断点、要么是未达到该断点(可能是由于异常)。

    是否在您第三次调用函数时始终如一?

    GDB 中的^C 是否可以重新获得控制权?  我相信这将导致 GDB 停止目标。

    您发送的日志的一部分看起来是成功运行的。  您能否从出错的地方共享日志?

    -Craig

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >>>%$m6784、4#A6
    <<<$00209de5#00
    >>>%%P19#da
    <<<$df010060#00
    >>>%$p1a#02
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1b#03
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1c#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1d#05
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1e#06
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p1f#07
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P20#D2
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P21#D3
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P22#D4
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P23#D5
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P24#d6
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P25#D7
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p26#D8
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p27#D9
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P28#da
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P29#db
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2a#03
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p2b#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2c#05
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2d#06
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p2e#07
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p2f#08
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P30#D3
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P31#D4
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P32#D5
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P33#d6
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p34#D7
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%p35#D8
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p36#D9
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%P37#da
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p38#db
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p39#dc
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%$p3a#04
    错误:READ_ON_REGISTER()返回后端调用2.
    <<<$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
    >>>%%PE=fc5c0000#13
    <<<$OK#00
    >>>%%P0=4cb8f7ff#57
    <<<$OK#00
    >>>%%P1=12000000#41
    <<<$OK#00
    >>>%%PD=f00f0008#E5
    <<<$OK#00
    >>>%$m5cfc、4#2e
    <<< 2美元 bffeb#00
    >>>%$PF=1c560000#B2
    <<<$OK#00
    >>>%1$z1,5cfc、4#78
    尝试在地址= 0x5cfc 处设置硬件断点。
    SetHWBP()
    SetHWBP()返回 JobID=0
    在地址= 0x5cfc 处设置新的 CTOOLS 硬件断点。 作业 ID = 0。
    <<<$OK#00
    >>>%1$Z1,6784,4#f0
    尝试在地址= 0x6784处设置硬件断点。
    SetHWBP()
    SetHWBP()返回 JobID=0
    在地址= 0x6784处设置新的 CTool 硬件断点。 作业 ID = 0。
    <<<$OK#00
    >>>%$c#63



    它就在这里...

    以 gdb...为单位的^C

    Gdb 输出:
    对接收到的信号 SIGTRAP、跟踪/断点陷阱进行编程。
    gioGetBit (port=0xffffffff、bit=24412)、位于./source/gio.c:335
    335. {
    在从 GDB 调用的函数中时、被调试的程序被发出信号。
    Gdb 保持在接收到信号的帧中。
    要更改此行为、请使用"将非窗口信号设置为开启"。




    Gdb 代理输出:

    <<<$T050f:8c560000;#00
    >>>%%qfThreadInfo#bb
    <<<$M0#00
    >>>%%qsThreadInfo#C8
    <<<$l#00
    >>>%1$z1,5cfc、4#98
    clear_hwbp (5cfc)被调用
    CLEAR_hwbp:找到 BP
    clear_hwbp:参考计数:1.
    调用 KillJob(0)
    <<<$OK#00
    >>>%1$z1,6784,4#10
    clear_hwbp (6784)被调用
    CLEAR_hwbp:找到 BP
    clear_hwbp:参考计数:1.
    调用 KillJob(0)
    <<<$OK#00
    >>>%$g#67
    <<< 34bcf7ff0700000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000f80f00087c
    6700008c560000#00
    >>>%%m568c、4#D3
    <<<$08d04de2#00
    >>>%%8000ff8,4#99美元
    <<<$ffFFF#00
    >>>%%8000ffc,4#c4.
    <<< 5c5f0000#00美元


    它是连续的第三个调用、当我^C 时、它将始终在每个调用中挂起。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到、这次它尝试设置两个断点(0x5cfc 和0x6784)。 假设有足够的资源应该可以正常工作、但输出的奇怪之处在于、似乎两个断点都被分配了相同的内部 ID (JobID)-它们应该是不同的。 看起来第二个断点可能会覆盖第一个断点-这可能解释了它为什么不在函数调用结束时停止。

    您可以尝试的一件事是暂时重命名重复运行的 CTOOLS 库。 如果 gdb-agent 找不到 CTOOLS 库,它应通过不同的机制设置硬件断点。 这将告诉我问题是否在 CTOOLS 库中。

    可在中找到 CTOOLS 库 /ccs_base/emulation/analysis/bin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    重命名了 CTOOLS.dll  

    调用函数仍然不起作用、程序将继续运行。

    放置硬件断点(以前使用的断点)也不再起作用、程序只会继续运行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    抱歉。  我的印象是低级调试驱动 程序直接支持硬件断点、可能我错了。  如果可以提供日志,我可以验证它不是 gdb-agent 中的内容。  

    我遇到了嵌入式 ARM 工具链的问题-该软件包中的 gdb 不支持 COFF 文件。  我是否有机会获得您构建的 gdb?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们使用的是最新的 gdb  

    我们使用 TI 编译器并生成 ELF 格式的.out 文件。

    由于使用 gdb 代理时遇到的问题、我们选择使用另一个承载 GDB 服务器的 JTAG 探针。

    感谢您的努力、

    此致、

    Karel