7.6 Jython スクリプトの概念とインタフェース

重要な DS-5デバッガの Jython インタフェースと概念の要約。

インポート

デバッガモジュールには、レジスタやメモリなどにアクセスするための、サービスと呼ばれるクラスと共に、DS-5デバッガへの初期アクセスのためのデバッガクラスが用意されています。以下の例は、一般に Jython スクリプトの上位に置かれるモジュールインポートの完全なセットを示しています。

from arm_ds.debugger_v1 import Debugger
from arm_ds.debugger_v1 import DebugException
実行コンテキスト

DS-5 デバッガの Jython インタフェースで実行するほとんどの操作には、例外コンテキストが必要です。実行コンテキストは、ターゲットシステムの状態を表します。デバッガでアクセス可能なプロセス、スレッド、プロセッサごとに個別の実行コンテキストが存在します。例えば、デバッガクラスのインスタンスから実行コンテキストを取得できます。

# Obtain the first execution context
debugger = Debugger()
ec = debugger.getCurrentExecutionContext()
レジスタ

デバッガの Jython インタフェースを使用して、プロセッサレジスタ、コプロセッサレジスタ、および周辺レジスタにアクセスできます。レジスタにアクセスするには、その名前に関する情報が必要です。名前は、グラフィカルデバッガの[レジスタ]ビューから取得できます。RegisterService を使用すると、特定の実行コンテキストでレジスタ値の読み取りと書き込みを行うことができます。以下に例を示します。

# Print the Program Counter (PC) from execution context ec
value = ec.getRegisterService().getValue('PC')
print 'The PC is %s' %value
メモリ

デバッガの Jython インタフェースを使用してメモリにアクセスできます。アクセスするアドレスとバイト数を指定する必要があります。アドレスとサイズは、指定された実行コンテキスト内で評価される式を含んでいる絶対値または文字列にすることができます。以下に例を示します。

# Print 16 bytes at address 0x0 from execution context ec
print ec.getMemoryService().read(0x0, 16)
DS コマンド

デバッガの Jython インタフェースを使用して、任意の DS-5 コマンドを実行できます。これは、必要な機能が Jython インタフェースでは直接提供されていない場合に役立ちます。実行コンテキストと、実行するコマンドおよび引数を指定する必要があります。戻り値には、戻り値には、コマンドからのテキスト出力およびエラー(ある場合)が含まれます。以下に例を示します。

# DS-5 コマンド 'print $ENTRYPOINT' を実行し、結果を出力 
print ec.executeDSCommand('print $ENTRYPOINT')
エラー処理

デバッガの Jython インタフェースのメソッドでは、エラーが発生すると、DebugException がスローされます。詳細を出力するために、例外をキャッチしてエラーを処理できます。以下に例を示します。

# Catch a DebugException and print the error message
try:
  ec.getRegisterService().getValue('ThisRegisterDoesNotExist')
except DebugException, de:
  print "Caught DebugException: %s" % (de.getMessage())

DS-5 デバッガ Jython API ドキュメントの詳細については、[ヘルプ]メニューから[ヘルプの目次]を選択します。

非機密扱いPDF file icon PDF 版ARM DUI0446ZJ
Copyright © 2010–2016 ARM.All rights reserved.