Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 如何在EclipseCDT上的ARMDS-5调试/命令视图中定义和设置变量_Variables_Arm_Gdb_Eclipse Cdt_Ds 5 - Fatal编程技术网

Variables 如何在EclipseCDT上的ARMDS-5调试/命令视图中定义和设置变量

Variables 如何在EclipseCDT上的ARMDS-5调试/命令视图中定义和设置变量,variables,arm,gdb,eclipse-cdt,ds-5,Variables,Arm,Gdb,Eclipse Cdt,Ds 5,我正在使用ARMDS-5(v5.29.1)EclipseCDT调试一个嵌入式项目,尝试使用debugger命令行通过debug透视图中的Commands视图操纵内存位置 根据调试器自己的上下文帮助(命令行上的Ctrl+Space),以下命令应定义变量并设置其值: set variable INTR_MASK=4 但是,在键入此项时,我得到一个错误: ERROR(EXP8): Could not find the symbol "INTR_MASK" 如何定义和设置变量? 以下是帮助说明,以

我正在使用ARMDS-5(v5.29.1)EclipseCDT调试一个嵌入式项目,尝试使用debugger命令行通过debug透视图中的Commands视图操纵内存位置

根据调试器自己的上下文帮助(命令行上的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
设置变量
------------
计算表达式并将结果赋给变量、寄存器或
记忆。
语法
设置[变量]
哪里:
指定表达式并将结果赋给变量、寄存器或
内存地址。
例子
设置变量myVar=10#将10分配给变量myVar
设置变量$PC=0x8000#将地址0x8000分配给
#PC寄存器
设置变量$CPSR.N=0#清除N位
设置变量(*(int*)0x8000)=1#将1分配给地址0x8000
设置变量*0x8000=1#将1分配给地址0x8000
设置变量strcpy((char*)0x8000,“我的字符串”)#将字符串分配给地址0x8000
设置变量memcpy(void*)0x8000,{10,20,30,40},4)#将数组分配给地址0x8000

在传达了ARM支持后,我们发现实现这一目标的正确方法如下:

newvar $INTR_MASK = (unsigned int)(0x00000004)
set variable $INTR_MASK = (unsigned int)($INTR_MASK + 0x00080000)
。。。与此相关的好处是,这些符号也可以在Expressions视图中使用,因此没有更明确的地址,而是有意义的名称