2009年04月29日

VC++例外

仕事でVC++のコードを書かされている。というか、既存のものに関する修正だが、例外処理の追加なのでちょっと手間取っている。C++としてはPMDMX以来2度目、VC++としては初めてだ。俺なんかが組んでも時間がかかるだけだと思ったんだが、客はそれでも構わないらしい。揃いも揃ってunix集団なので俺でも平均値並みで、俺が一番手が空(す)いているから、とのこと。

さて、VC++とはいったものの基本的にはCのプログラムである・・・という触れ込みだったが、蓋を開けてみれば結局Windowsにベッタリだった。どうも理由不明・現象不明でプロセスが消滅してしまっているので、原因はともかくどうにかして事象だけでも探りたいらしく、全くのフリーハンドで、ソースコードレビューもウォークスルーもキャンセルして商用機に搭載していいらしい。いいのかそれで!?

ちょっと悩んだが、改造は3点。

signal( )システムコール:
abort( )等によるSIGABRTを検出できる。
C構文のまま使用可能。
signal.hさえincludeすれば問題なく動く。

try-catch構文:
ゼロディバイドやヌルポ等を検出できる。
C++コンパイルする必要がある。 ←検証していない
winafx.hが必要であるのか? ←よくわからない

フラッシュとファイル出力:
標準出力にデバグ情報を放り出しているのだが、fflushもなしにただprintfを置いてあるだけなので動いているかどうかわからない。そもそもどの時点で業務的・論理的にエラーになっても、すべて同一のエラーコードを出力するという超!素敵仕様なので、エラー情報の詳細をフラッシュした標準出力ストリームとファイルに出力するように改修する。

まあ、今更ではあるがVC++に慣れるいい機会だ。
posted by JUD at 00:58| Comment(0) | TrackBack(0) | PC・ネットワーク
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/28755774
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック