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.

[参考译文] CCS/TM4C129XNCZAD:调试器中的奇怪反汇编器行为

Guru**** 2392905 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/829591/ccs-tm4c129xnczad-weird-disassembler-behavior-in-debugger

器件型号:TM4C129XNCZAD

工具/软件:Code Composer Studio

大家好、我目前正在尝试将 matrixSSL 移植到 TIARM 编译器(这是一个挑战、因为 GNU 编译器的大多数性能提升来自__ASM_语句、这些语句不起作用)。 调试某些代码时、反汇编器会显示一些奇怪的输出(软件可以工作、但输出看起来很奇怪)。 asm 文件显示:

   dwcfi   CFA_offset、0
       按     {A4、V1、V2、V3、V4、 lr};[DPU_V7M3_PIPE]
   dwcfi   CFA_offset、24
   dwcfi   save_reg_to _mem、14、-4
   dwcfi   save_reg_to _mem、7、-8
   dwcfi   save_reg_to _mem、6、-12
   dwcfi   save_reg_to _mem、5、-16
   dwcfi   save_reg_to _mem、4、-20
   dwcfi   save_reg_to _mem、3、-24
       MOV       V4,A1               ;[DPU_V7M3_PIPE]|1251|
       MOV       V1、A4               ;[DPU_V7M3_PIPE]|1251|
       MOV       V3、A2               ;[DPU_V7M3_PIPE]|1251|
   .dwpsn   文件"D:/.../matrixssl-4-2-1/crypto/math/pstmnt.c、第1259行、第5列、IS_stmt、ISA 1.
;--------------------------------------------------------------
;1259 |进位= pstmnt_sub_mask (p、r、n、-(pstmnt_word_1) 1);                   
;--------------------------------------------------------------
       MOV       A1、A2               ;[DPU_V7M3_PIPE]|1259|
   .dwpsn   文件"D:/.../matrixssl-4-2-1/crypto/math/pstmnt.c、第1251行、第1列、IS_stmt、ISA 1.
       MOV       V2、A3               ;[DPU_V7M3_PIPE]|1251|

   .dwpsn   文件"D:/.../matrixssl-4-2-1/crypto/math/pstmnt.c、第1259行、第5列、IS_stmt、ISA 1.
       MOV       A4、#-1              ;[DPU_V7M3_PIPE]|1259|

如果我在调试器中查看相同的序列、它将显示以下内容:

         pstmnt_cmp_sub_mod_carry ():
0004a418:  B5F8               推      送{R3、R4、R5、R6、r7、 LR}
0004a419:  07B5              .word      0x000007b5
0004a41b:  1C46              .word      0x00001c46
0004a41d:  0E46              .word      0x00000e46
0004a41f:  0846              .word      0x00000846
1259         进位-= pstmnt_sub_mask (p、r、n、-(pstmnt_word) 1);
0004a420:  4608               mov       r0、R1
1251     {
0004a422:  4615               mov       R5、R2

1251     
。   4F46              .word      0x00004f46

首先、PUSH 是一个16位命令。 因此地址增量1已经错误了。 在0x4a420中、它被重新同步、但稍后它甚至不显示地址。

是错误设置还是反汇编器错误? 我不知道哪个组件版本很有趣、整个列表很长。 以下是一些:

Code Composer Studio 基本组件8.3.0.01611

Code Composer Studio IDE ARM 组件8.3.0.201810301800

Debug Server 8.3.0.1611

Tiva C 系列 ARM MCU 2.1.1.15071

 

此致

Klaus

 

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

    Klaus、

    从您的描述中、代码执行正确(即)、执行正确的指令、但反汇编视图显示错误。 如果是这种情况、我的第一个建议是尝试使用 CCS 9.1.0的最新版本。 这可能是在较新版本中已解决的错误。

    在 CCS 9.1.0中、第一步、您只需 使用手动调试器启动来加载当前的可执行文件(而无需重建整个项目)。 然后验证问题是否仍然存在。 如果是、请向我们发送一个小测试案例、以帮助我们重现问题。  

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

    您好!

    感谢您的快速回答。 我担心,这是一种“假”效应。 重新启动 CCS 后、我甚至无法使用当前版本的 CCS 重新生成它。 我继续重现、至少我知道它是如何发生的:应用程序处于无限循环中、我按下了"SUSPEND (暂停)"按钮、我就在那里。 但至少这不是一个"总是"的错误、因为大约20次尝试都没有重现它。 当我发布消息时、两次尝试都发生了两次。

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

    感谢您的报告。 我们现在将关闭此主题、但如果问题持续出现、请随意重新打开该主题或创建新主题。