0

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

根据调试器自己的上下文帮助(命令行中的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
4

1 回答 1

0

在沟通了 ARM 支持之后,结果表明实现这一目标的正确方法是:

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

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

于 2019-12-18T14:57:59.603 回答