AST-1コントロールソフトウェア"ASTDB”Ver 1.02.06リリースノート バイテックシステムエンジニアリング株式会社 2006/04/12 ■Ver 1.02.06トピックス ・GCCでビルドしたELFオブジェクトファイルにおける不具合を何点か修正しました。 ・その他、詳細については文末の履歴を参照して下さい。 ■ASTDBについて ASTDBはWindows98/Me/2000/XP用です。インストールには付属の setup.exeを使用してください。 アンインストールは直接ファイルを消さずに、 コントロールパネル-アプリケーションの追加/作成から行ってください。 なお、インターネットエクスプローラ5.0以前をお使いの場合は、インストールを 実行すると、OSのリブートを要求される場合があります。これは、WindowsInstaller をシステムに組み込むためです。2回目以降はリブート要求はありません。 AST-1を使用するには、専用のUSBドライバをOSに組み込む必要があります。 ドライバは製品付属のCD-ROMに収録されています。 また、最新版は弊社ホームページにアップロードされます。 ■使用上の注意 ・一部のコンパイラで、構造体のビットフィールドメンバの名前を省略した場合、 デバッグ情報において、それ以降のビットフィールドメンバのビット位置がずれて しまう問題があります。(ビット位置がずれるのはデバッグ情報のみです) ELFファイルのDWARFデバッグ情報が正常に出力されないためであり、デバッガでは 対処できません。 この問題を回避するには、ビットフィールドメンバの名前を省略しないように ソースファイルを修正してコンパイルし直してください。 例) extern volatile union { unsigned char ckr; struct { unsigned sckc : 1; unsigned scks : 1; unsigned sckosc: 1; unsigned mckosc: 1; unsigned dummy : 2; // "dummy"を省略するとphckonとstckrmがずれる unsigned phckon: 1; unsigned stckrm: 1; } b; } r_ckr; ・GCCにおいてインラインアセンブラ記述を用いる場合、1つのasm文に複数の命令を 記述すると、ELFファイルのDWARFデバッグ情報が正常に出力されず、コードアド レスとソース行の対応がおかしくなる場合があります。 この問題を避けるには、1つのasm文に1つの命令のみ記述するようにソースを修正 して下さい。(デバッガ側での対処はできません) また、GCCはシフトJISに対応していないため、行末に2バイト目が"\"(0x5c)の 漢字(例:能、表)があるとコメント行であっても次の行と連結されてコンパイル されてしまい、コードアドレスとソース行の対応がずれてしまいます。この場合 もソースの修正が必要です。(コメントが連結された場合、コンパイルエラーに はならないので注意して下さい) ・一部のコンパイラで、enum変数定義においてタグを省略した場合、 例:enum {TEST1,TEST2,TEST3} enum_vari; この変数をウォッチやインスペクトすると、まだスコープが無いという表示と なってしまう場合があります。ELFファイルのDWARFデバッグ情報が原因であるため この問題を回避するには、enum変数定義においてタグ付きで定義するように ソースファイルを修正してコンパイルし直して下さい。 例:enum ENUM_VARI_T {TEST1,TEST2,TEST3} enum_vari; ・配列の定義を添え字付きでCソースで行っていて、ヘッダファイルで同じ配列を 添え字無しで宣言している場合、その配列をインスペクト等で表示すると、要素数 が定義時の数ではなく、1として表示されてしまう場合があります。 この問題もELFファイルのDWARFデバッグ情報に起因しているため、対処するには ヘッダファイルの修正が必要です。具体的には配列定義と同じ要素数をヘッダ ファイルの配列宣言に記述して下さい。 例:extern int dummydim[]; //Cソースでは、int dummydim[128];と定義 ↓ extern int dummydim[128]; ・ADSでコンパイルしたC++プログラムのデストラクタ関数において、コンパイラが 生成した"int __is_delete"引数が、プロジェクトエクスプローラやインスペクト 等で表示されてしまいます。この問題は、デバッガがELFファイルのDWARFデバッグ 情報から __is_delete をコンパイラが生成した変数である事を認識できないため に発生します。デバッガでは対処できないため、デバッグ時には無視して下さい。 ■AST-1ユーザーズマニュアルについて AST-1ユーザーズマニュアルには、ASTDBに関する記述が含まれています。ASTDBは、 随時アップデートしているため、製品付属の製本されたマニュアルの内容が古く なっている場合があります。 最新のAST-1ユーザーズマニュアルをご覧になりたい場合は、ASTDBをインストール した際に作られるDocumentフォルダのAST-1 Manual.pdfを参照して下さい。 ■履歴 Ver 1.01.00 2003/09/26 ・正式版リリース Ver 1.01.01 2004/05/27 ・SDTでビルドしたプログラムにおいて、関数の先頭から1ステップ以上進めると Step Out/[GR]コマンドが正常に動作しない不具合を修正。 ・比較的大きなELFオブジェクトファイルをロードした場合、ソースウィンドウ上の 文字列をクリックした際、数十秒間反応しなくなる問題を修正。 Ver 1.01.02 2004/05/28 ・他のアプリケーションでソースファイルを開いている時に、Select module等で そのソースファイルを開こうとすると、"XXXXX.YYY is not found."という エラーメッセージが表示され、開く事ができない不具合を修正。 Ver 1.01.03 2004/05/31 ・モトローラS3フォーマットのロードでオフセットアドレスの指定やロード時の アドレス表示等が16進数6桁しか扱われない不具合を修正。 ・ELFファイルロード時の表示を他の形式と揃えた。 ・バイナリファイルのロードを新たにサポートした。 コマンド入力 ]N filename.BIN ・・・・拡張子"BIN"をバイナリファイルと見なす。 ]L loadaddress ・・・・パラメータでロードアドレスを指定する。 メニュー File->Read hex fileにファイルの種類としてBinary(*.BIN)を追加 ロードするアドレスは、次に表示されるオフセットダイアログで指定する。 Ver 1.01.04 2004/06/02 ・デバッグ情報が大きなプログラムの場合、プロジェクトエクスプローラでの 右クリックやダブルクリック時の反応が遅い問題点を修正。 ・拡張子が"ELF"のファイルもELFオブジェクトファイルとして扱うように修正。 Ver 1.01.05 2004/06/11 ・GCCで生成したELFオブジェクトファイルにおいて、ソースウインドウのMIX モードでソースが表示されない場合がある不具合を修正。 ・コンパイラ設定がSDTとGCCの場合、ELFオブジェクトファイルのロード時間を 若干高速化。 ・ADS C++のELFオブジェクトファイルでMIX表示の時に、ステートメントの途中行 ソースが正しく表示されない場合がある不具合を修正。 ・コンパイル時に絶対パスを指定したGCCのELFオブジェクトファイルでソース ファイルが表示できない場合がある不具合を修正。(オリジナルパス利用時) ・GCCのELFオブジェクトファイルのロードでファイルの検索時にネットワークパス を検索してしまいロードが遅くなる場合がある不具合を修正。 Ver 1.01.06 2004/06/22 ・Hexファイルやバイナリファイルをオフセット付きでロードした後、Reloadボタン を押すと、オフセット無しでロードしてしまう不具合を修正。 ・[N]コマンドでHexファイルやバイナリファイルを指定する際、ファイル名の後 に">オフセット"を指定できるように改良。[L]コマンド実行時に、ファイル名後 のオフセットを解釈するが、[L]コマンドオプションのオフセットが優先される。 また、オフセット付きロードの場合、カレントファイル名を">オフセット"付きに 更新する。これにより続けて[L]を実行した際、オフセット付きでロードされる。 ・Hexファイルのロードもロード履歴に登録するように修正。また、ロード時の オフセット情報も"ファイル名>オフセット"の形式で表示/利用するように修正。 ・[Reload]ボタンのHintにロード対象のファイル名が表示されるように改良。 Ver 1.01.07 2004/06/28 ・ELFオブジェクトファイルのロード時に、"Loading ELF object..."と表示した後、 "!!!"がいくつか表示される場合がある不具合を修正。 Ver 1.01.08 2004/08/13 ・[N]コマンドでファイル名の後に">オフセット"を指定する際、ファイル名と'>'の 間にスペースがあると"Unknown file type"のエラーとなる不具合を修正。 ・ADSでコンパイルしたオブジェクトで、static変数の値がスコープがあるにも関わ らずウォッチ/インスペクトウインドウで表示されず、 Variable not reached to scope yetの表示となる場合がある不具合を修正。 ・static変数は、スコープに拠らずウォッチ/インスペクトで表示するように変更。 ・外部変数をウォッチ/インスペクトウインドウに登録した際、値が表示されず、 Variable removed by compiler (optimization)の表示になる場合がある不具合 を修正。 ・インライン関数を含むELFオブジェクトファイルをロードした後に、違う ELFオブジェクトファイルをロードすると、ステップ実行が正常に実行されない 場合がある不具合を修正。 ・ウォッチウインドウの変数表示で表示桁数が足らず、右端が切れてしまう場合が ある不具合を修正。 ・プロジェクトエクスプローラのFilesでソースファイルを切替えた場合や、ソース ウインドウのタブでソース切替えを行った際、カレントモジュールが切り替わ らない場合があり、同名のstatic変数の登録を正しいスコープで行えない不具合 を修正。 ・プロジェクトエクスプローラ等のウインドウからスタティック変数をウォッチや インスペクト登録する場合、モジュール名を表示しているにも関わらず、 スコープが、ソースウインドウのカレントモジュールになってしまう不具合を 修正。 Ver 1.01.09 2004/10/29 ・GCCにおいて、インラインアセンブラ記述を含むソースファイルからELFオブジェ クトファイルを生成した場合、ELFファイルロード時に"配列のインデックス エラー"が発生する場合がある不具合を修正。 ・コマンドウインドウでのレジスタ表示において、SPSRの値が正常に表示されず、 レジスタウインドウの値と異なる不具合を修正。 ・[L]コマンドのオフセットに"/拡張子"でファイルタイプを強制指定できるよう に改良。→ ASTDBオンラインヘルプ及び、AST-1ユーザーズマニュアル参照 ・[E]コマンドにおいて、アドレスパラメータに"/変化量"を指定可能にした。 また、アドレスに続けてデータ列をコマンドラインで指定できるようにした。 この場合、メモリへの書き込みをしてコマンド待ちに戻る。 アドレスのみ指定した場合のデータ入力においてもデータ列を入力できるよう にした。→ ASTDBオンラインヘルプ及び、AST-1ユーザーズマニュアル参照 ・[E]及び[A]コマンドにおいて、入力した文字列の末尾が':'だった場合、 シンボル登録するように改良。 ・[A]コマンドでシンボル登録すると登録完了のメッセージが表示されてしまう 不具合を修正。また、アセンブルエラーとなった場合、デバッグ用ログが表示 されてしまう不具合を修正。 Ver 1.02.00 2004/12/24 ・ASTDBのアイコンを変更。 ・setup.exeでインストールすると各種の設定が初期化されてしまう不具合を修正。 (setup.exeの生成方法を変更) ・インテルHEXファイルの書き込みで"wr 0,fffff"を実行すると強制終了してしまう 不具合を修正。 ・インテルHEXファイルのロード時に、[ESC]キーでの中断ができない不具合を修正。 ・ELF、BIN及びモトローラSファイルののロード時に、[ESC]キーで中断すると、 各ウインドウのメモリ内容の更新が行われず、DCCセミホスティングハンドラが 復元されない不具合を修正。 ・バイナリファイルのロードでファイルが見つからなかった場合、 DCCセミホスティング・ハンドラが復元されない不具合を修正。 ・ロード時にリセットする設定になっているにも関わらず、オブジェクトリロード の時にリセットされない不具合を修正。 ・ロード時やセーブ時に進捗状況の表示を0.5秒間隔で行うように修正。 ・ELFオブジェクトファイルのロードを若干高速化。 ・バイナリファイルのセーブ機能を追加。 ・インテルHEXファイルのセーブで、セグメントレコードが4Kバイト毎に出力され てしまう不具合を修正。 ・ウインドウのアイコンを変更。 ・ELFファイルのデバッグ情報のみロードする機能を追加。[N]コマンドでELF ファイルを指定した後、[L]コマンドのパラメータに'S'を付加することでシンボル 情報(デバッグ情報の全て)のみをロードする。 ・インスペクト、ウォッチ、バリアブルズ、プロジェクトエクスプローラから、 変数のダンプとポインタ変数の指し示すアドレスのダンプをサポート。 (ポップアップメニューの"Dump this"と"Dump this point") ・インスペクトウインドウのトグルウォッチポイントにおいて、選択している変数が レジスタ変数の場合はメニューが無効となり実行できない不具合を修正。 ・ウォッチのユーザー定義変数でcharの配列を表示すると、ハーフワード(16bit) で表示される不具合を修正。 ・ウォッチやインスペクトで、voidや関数のポインタ変数がポインタとして正しく 表示されない不具合を修正。 ・ウォッチやインスペクトで、typedefを用いない関数へのポインタ変数の表示で 型が表示されない不具合を修正(変数名の後に"()"を表示)。 ・enum型変数に対して、どのウインドウからもポップアップメニューの Toggle watchpointが機能しない不具合を修正。 ・ダンプウインドウのポップアップメニューに、全てのタブを削除する "Delete all tabs"を追加。 ・構造体へのポインタのウォッチ表示で、ポインタ値(&アドレス)が構造体の始まり を示す"{"の後に表示されてしまう不具合を修正。 ・ウォッチやインスペクト等で、char型のポインタ変数の表示においてASCIIをOFF にしても文字列の表示が常に行われてしまう不具合を修正。 ・ウォッチやインスペクト等におけるchar型ポインタの文字列表示で、'\r'と'\n' の何れかがあるとそこから先の文字列が表示されず、また、制御コードがそのまま の数値で表示されてしまう不具合を修正。 ・プロジェクトエクスプローラのFilesでモジュールの関数や変数のツリー表示を サポート。 ・プロジェクトエクスプローラで、項目の昇順/降順ソートをポップアップメニュー から実行できるようにした。フォルダノードを選択している場合は、その中を ソートする。それ以外は、そのノードが含まれる階層をソートする。 ・プロジェクトエクスプローラのグローバル変数に、同じ変数が重複登録されて しまう不具合を修正。 ・プロジェクトエクスプローラで、同じクラスがメンバーが若干異なる状態で重複 して表示される不具合を修正。 ・プロジェクトエクスプローラのクラスメンバ関数からブレークポイントを設定した 場合、インライン関数であっても1箇所しかブレークポイントが設置されない 不具合を修正。 ・Viewメニューをメニューバー追加。 ・FileメニューからSelect moduleとClose moduleを削除。(Viewメニューに移動) ・FileメニューからReset tartgetを削除し、Runメニューへ追加。 ・ソースウインドウのポップアップメニュー並びを使う頻度に合わせて修正。 ・メニューに対してショートカットキーを設定。 ・メニューバーのプルダウンメニューでアイコンがある項目には、アイコンを表示 するように修正。 ・アドレス/数値入力ダイアログ、検索ダイアログ、hexファイル書き込みダイアログ のデザインを修正。 ・コマンドウインドウがアクティブの場合、PageUp/PageDownでコマンドウインドウ のスクロールをするように修正。 ・いくつかのダイアログで[F1]キーを押した時に、正しいヘルプが表示されない 不具合を修正。 ・[R]コマンドやブレーク時のレジスタ表示で、R0〜PCまでの値がずれて表示され ないように修正。 ・Helpを最新版に合わせて修正。ショートカットキーの説明を追加 Ver 1.02.01 2005/02/24 【不具合修正】 ・メニュー→Option→Setup→Targetで設定したRDIのDLLファイルが見つからな かった場合、不正なメモリアクセスが発生し、強制終了となる不具合を修正。 ・メニュー→Breakpointで表示されるアイコンで、一部の色が256色や16bit色の 時に表示されない不具合を修正。 ・Setupダイアログでコプロセッサアクセスコードアドレスの設定を変更しても ASTDBを再起動しないと反映されない不具合を修正。 ・文字列検索ダイアログにおける"serach"のスペルを修正。 ・メニュー→Option→Setup→Target→ConfigureでAST-1の設定を変更し[OK]ボタン を押した後、Setupダイアログを[Cansel]ボタンでクローズした場合、その場で AST-1の設定は変更されないが、次回起動した時に変更が反映されてしまう不具合 を修正。その場でアップデートするかを問い合わせるダイアログを表示する。 ・メニュー→Option→Setup→TargetでRDIターゲットを変更した後[OK]ボタンを押す と、配列の添え字が不正という例外エラーが繰り返し発生し、ASTDBが強制終了 してしまう不具合を修正。 ・リンクリストになっているクラスや構造体で最初のメンバー変数がリンクリスト へのポインタであった場合、そのインスタンスをバリアブルズウインドウや ウォッチウインドウで選択し右クリックするとハングアップする不具合を修正。 (Ver.1.01.10以降が該当) ・ELFファイルロード後、バリアブルズウインドウでグローバルタブを選択し、 その後、システムリセット([IS]コマンド等)すると、デバッグ情報はクリア されるがグローバルタブの内容はクリアされず、右クリックすると例外が発生 し強制終了となる不具合を修正。 ・[WV]コマンドで長いウォッチ内容を表示すると、不正なメモリアクセスが発生し 強制終了となる不具合を修正。 ・ユーザ定義ウォッチ設定ダイアログでByte Numberに長い文字列を入力して[OK] ボタンを押すと不正なメモリアクセスが発生し強制終了となる不具合を修正。 ・[RE]や[IS]コマンドで"n"を入力すると"failed"と表示される不具合を修正。 ・C++においてインライン関数のステップ実行で関数の内部にステップインして しまう場合がある不具合を修正。(Ver.1.01.05以降が該当) ・CTRLキーを押しながらセットアップモードで起動した場合、Setupダイアログの テキストボックスでCTRL-Vを入力すると、不正なメモリアクセスが発生し、強制 終了となる不具合を修正。(Ver.1.02.00のみ該当) 【改良/機能追加】 ・ツールバーのウインドウボタンを押した際、該当するウインドウの表示/非表示 (最小化)をトグルするように改良。 ・メモリアクセスキャッシュ機能を追加し、ステップ実行等のパフォーマンスを大幅 に向上。メニュー→Option→Setup→Target→Configureで表示されるAST-1の設定 ダイアログでメモリアクセスキャッシュ設定サポート。 Ver 1.02.02 2005/05/24 【不具合修正】 ・WindowsXPにおいて、メニュー→Window→Window position→Defaultで画面解像度 に合わせたデフォルトウインドウ配置を実行すると、下端のウインドウが クライアント領域からはみ出してしまい、スクロールバーが表示される不具合を 修正。これに伴い、ディスクトップのタスクバーやツールバーの配置及びサイズ に合わせてウインドウサイズを自動調整するように改良。 ・メニュー→Option→Setup→Display→Inspect window→Structure pointer depth の初期値が"0"ではなく"1"となっている不具合を修正。 (Ver.1.02.00以降のクリーンインストール時のみ該当) 【改良/機能追加】 ・1280x960と1280x1024のデフォルトウインドウ配置を改良。 ・インストール後のデフォルトウインドウ配置を640x480ではなく、画面解像度に 応じて自動設定するように改良。 ・インストール後のメニュー→Setup→Function→CPU is reset when load object 初期設定をOFFに変更。 ・メニュー→Option→Setup→Display→Inspect windowでインスペクトウインドウ のデフォルトサイズを設定できるように改良。 Ver 1.02.03 2005/08/25 【不具合修正】 ・パスポイント設定において、設定するアドレスの命令によっては、設定できる はずがエラーになったり、逆にエラーになるはずが設定できてしまったりする 不具合を修正。 ・ファイルロードやメモリフィルを行った際、実際のメモリ内容は変更されている にも関わらず、デバッガが表示しているメモリ内容が更新されず、Write hex file でメモリ内容を保存すると一部のメモリ内容が古いまま保存されてしまう不具合 を修正。(本不具合は、メモリアクセスキャッシュが有効時のみ該当) ・Write hex fileにおいてファイルのパス名が76文字を超えると "Too long filename"となってしまう不具合を修正。 (パス名の長さ制限を、259文字に変更) ・メモリアクセスキャッシュを有効にすると、HEXファイルやバイナリファイルの セーブが3倍程度遅くなる問題を修正。 Ver 1.02.04 2005/10/03 【不具合修正】 ・[,]が含まれているパス名のファイルをロードしようとすると"???"が表示されて ロードできない不具合を修正。 ・マクロバッファのサイズを8192バイトに拡張。 ・マクロが[E]コマンドや[A]コマンドの入力中に終了した場合にハングアップ する不具合を修正。(Ver.1.02.01以降が該当) Ver 1.02.05 2005/10/27 【不具合修正】 ・cygwin環境で、cygwinフォルダ以外のフォルダにあるソースをGCCでビルドした ELFオブジェクトファイルをロードした際、ソースが表示されない場合がある 不具合を修正。 ・Thumb命令のPOP {Rlist, PC}に対してパスポイントが設定できてしまう不具合を 修正。(本来は、ブレーク中において次に実行するアドレスが確定できないので パスポイントは、POP {Rlist, PC}命令に対して設定できない) ・定数定義のみ等、コードを生成しないC言語ソースファイルを含むプログラムの ELFオブジェクトファイルをロードした場合、MIX表示の際、「配列のindexが範囲 を越えている」という例外エラーが表示される事がある不具合を修正。 Ver 1.02.06 2006/04/12 【不具合修正】 ・GCCで生成したオブジェクトファイルでプロジェクトエクスプローラのFilesタブ からファイルを選んで右クリックでJump to sourceでソースファイルが開けない 場合がある不具合を修正。 ・cygwin環境で、cygwinフォルダ以外のフォルダにあるソースをGCCでビルドした オブジェクトをロードした際、ソースが表示されない場合がある不具合を修正。 ・RDIターゲットが2番目以降に登録されたものである場合、コントロールキーを 押しながら起動してSetupダイアログを表示した後、[OK]ボタンを押すと不正な メモリアクセス例外が発生してしまう不具合を修正。 ・Inline static関数をヘッダファイルからインクルードしているモジュールに おいて、GCCで生成したELFオブジェクトファイルでファイルの途中からソース 表示できない場合がある不具合を修正。