式の使用

一部のコマンドでは、式を指定することができます。 デバッガでは様々な種類の式を指定して、コマンドの操作を拡張できます。 例えば、バイリ数式、モジュール名への参照、関数呼び出しなどの使用が可能です。

Show/hide$ 文字を使用したレジスタおよびデバッガ変数の内容へのアクセス

式の中で $ 文字とレジスタ名を使用して、レジスタの内容にアクセスすることができます。以下に例を示します。

print 4+$R0      # R0 レジスタの内容に 4 を加算し、結果を出力

print コマンドの結果はデバッガ変数に記録され、その後 $ 文字を使用して式の中で使用することができます。 print コマンドの結果は、個別に番号がけられます。

print コマンドの結果にアクセスするには、以下のいずれかの方法を使用します。

$

最後の print の結果

$n

番号 n を割り当てられた、print の結果

$$

最後から 2 番目の print 結果。

また以下のデバッガ変数を使用することもできます。

$cwd

現在の作業ディレクトリ

$cdir

現在のコンパイルディレクトリ

$entrypoint

現在のイメージのエントリポイント

$idir

現在のイメージディレクトリ

$sdir

現在のスクリプトディレクトリ

$datetime

文字列形式での現在の日付と時刻

$timems

1970 年 1 月 1 日から経過した時間(単位:1/1000 秒)

$pid

現在のオペレーティングシステムのプロセス ID

$thread

マルチスレッドアプリケーションの現在のスレッド ID

$core

対称型マルチプロセシング(SMP)システムの現在のプロセッサ ID

$vmid

ハイパーバイザ/仮想マシンのデバッグをサポートするシステムの現在の仮想マシン ID(VMDI)

Show/hide式の中での組み込み関数の使用

式の中で組み込み関数を使用して、より多くの機能を提供することができます。 デバッガでは、以下の関数がサポートされています。

int strcmp(const char *str1, const char *str2);

2 つの文字列を比較して 1 つの戻り値に整数を返します。

戻り値は以下のとおりです。

<0

文字の照合順序で、2 番目の引数文字列の値が最初の引数文字列の値より後であること(str1 < str2)を示します。

0

2 つの文字列の内容が同じであることを示します。

>0

文字の照合順序で、最初の引数文字列の値が 2 番目の引数文字列の値より後であること(str2 < str1)を示します。

int strncmp(const char *str1, const char *str2, size_t n);

2 つの文字列で最大 n 文字を比較して、整数を返します。

戻り値は以下のとおりです。

<0

文字の照合順序で、2 番目の引数文字列の値が最初の引数文字列の値より後であること(str1 < str2)を示します。

0

2 つの文字列の内容が同じであることを示します。

>0

文字の照合順序で、最初の引数文字列の値が 2 番目の引数文字列の値より後であること(str2 < str1)を示します。

char *strcpy(char *str1, const char *str2);

"\0" を含め、str2str1 にコピーし、str1 を返します。

char *strncpy(char *str1, const char *str2, size_t n);

"\0" を含め、str2 で最大 n 文字を str1 にコピーし、str1 を返します。 str2 の文字数が n より少ない場合、"\0" を埋め込みます。

void *memcpy(void *s, const void *cs, size_t n);

cs から s に最大 n 文字をコピーし、s を返します。

Example 1. break コマンドによる組み込み関数 strcmp() の使用

break main.c:45 if strcmp(myVar, "10") == 0     # 文字列が同じ場合に停止する
                                                # 条件付きブレークポイントを設定

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0452IJ
Non-ConfidentialID051512