非機密扱い | ![]() | ARM DUI0452ZJ | ||
| ||||
ホーム > DS-5デバッガ コマンド > DS-5デバッガ コマンドの一覧(アルファベット順) > memory set |
メモリに書き込みます。
mem
ory set [<verify=flag>:]address
width
expression
各項目には以下の意味があります。
アドレスをフラグで修飾して、演算が検証アクションを実行する必要があるかどうかを指定します。フラグの値を以下に示します。
演算が正しく実行されたかどうかを検証する必要はありません。
演算が正しく実行されたかどうかを検証する必要があります。これがデフォルトです。
address
最初の値を書き込むアドレスを指定します。アドレスは、指定した式の型に正しく整列している必要があります。
例えば、
memory set EL1N<verify=0>:0x8000 32 0x1234
アドレス空間が 1 つ(匿名)しかない場合は、次のように指定します。
memory set <verify=0>:0x8000 32 0x1234
width
メモリの書き込みに使用するアクセス幅(ビット数)を指定します。指定したメモリ幅が書き込まれる値よりも狭い場合、複数回のアクセスによってその値が書き込まれます。例えば、
デバッガによるアクセス幅の決定を有効にします。
8 ‑ビット
16 ‑ビット
32 ‑ビット
64 ‑ビット
アクセス幅は、ターゲット、アドレス領域、およびアドレスの整列に依存します。場合によっては、一部のアクセスサイズがサポートされていないことがあります。
expression
中括弧に、単一の式を含めるか、複数の同じサイズの式の集合を含めるかを指定します。式が複数存在する場合、値の型の幅によって決定されたアドレスを使用して、値がメモリに順に書き込まれます。
このコマンドは、メモリアドレスの値をデフォルトのアドレス変数として設定します。x など一部のコマンドでは、アドレスが指定されていない場合に、このデフォルト値が使用されます。
memory set 0x8000 0 "Hello" # 文字列をメモリに書き込み memory set 0x1000 0 {(char)0x10,(char)0xFF,(char)1,(char)2,(char)3,(char)42} # これは以下のコマンドに相当する。 # 変数 *(char*)0x1000 = (char)0x10 に設定 # set variable *(char*)0x1001 = (char)0xFF # set variable *(char*)0x1002 = (char)1 # set variable *(char*)0x1003 = (char)2 # set variable *(char*)0x1004 = (char)3 # set variable *(char*)0x1005 = (char)42 memory set 0x1008 0 0x1234 # set variable *(int*)0x1008 = 0x1234 に相当する memory set 0x1008 8 0x1234 # 結果は同じですが、1 バイトずつ 4 回書き込みが行われる