如何在 Eclipse 上的 ARM DS-5 Debug/Command 视图中定义和设置变量 CDT

How to define and set a variable in ARM DS-5 Debug/Command view on Eclipse CDT

我正在使用 ARM DS-5 (v5.29.1) Eclipse CDT 调试嵌入式项目,尝试使用调试器命令行通过“调试”透视图中的“命令”视图来操作内存位置。

根据调试器自带的context help(Ctrl+Space在命令行中),下面的命令应该定义一个变量并设置它的值:

set variable INTR_MASK=4

然而,当输入这个时,我得到一个错误:

ERROR(EXP8): Could not find the symbol "INTR_MASK"

如何定义和设置变量?


作为参考,这里是帮助说明:

set variable
------------

Evaluates an expression and assigns the result to a variable, register or
memory.

Syntax
  set [variable] <expression>
Where:
<expression>
  Specifies an expression and assigns the result to a variable, register, or
  memory address.

Example
  set variable myVar=10                               # Assign 10 to variable myVar
  set variable $PC=0x8000                             # Assign address 0x8000 to
                                                      # PC register
  set variable $CPSR.N=0                              # Clear N bit
  set variable (*(int*)0x8000)=1                      # Assign 1 to address 0x8000
  set variable *0x8000=1                              # Assign 1 to address 0x8000
  set variable strcpy((char*)0x8000,"My String")      # Assign string to address 0x8000
  set variable memcpy(void*)0x8000,{10,20,30,40},4)   # Assign array to address 0x8000

在传达 ARM 支持后,发现实现该目标的正确方法如下:

newvar $INTR_MASK = (unsigned int)(0x00000004)
set variable $INTR_MASK = (unsigned int)($INTR_MASK + 0x00080000)

... 并且相关的好处是这些符号也可以在表达式视图中使用,因此没有更明确的地址,而是有意义的名称。