スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告
pro*c
こんにちは。

今日はpro*cと格闘していました。

proc iname=foo.pc oname=foo.pcc

とかするといきなり

Segmentation fault (core dumped)

・・・そりゃないでしょ(--;

どこがどう悪いとか言ってくれっ!!
と、#if 0 ~ #endifで範囲を絞り込みながら、
エラー箇所の特定調査。

そして戦うこと30分。

原因はincludeファイル内で宣言してあった変数名と
プログラム中でdefineしたマクロ名が衝突したためでした。

そんだけ?
そんなすぐコアダンプするほどのものじゃないでしょ!?

まったく。

疲れた。

仕事が進まない(T-T)
スポンサーサイト
【2005/02/28 14:40】 | Pro*C | トラックバック(0) | コメント(0)
謝辞
そういえば、年末年始をはさんでちょこっと参加していた実験の
論文が情報処理学会の支部大会で発表されたみたいで、
なんと謝辞に名前を入れていただいていました。
でも、あんまり学問的なお手伝いじゃなくて、
単なる労働力の提供というか(^^;

それにしても謝辞を頂くのは大学の卒論とか修論以来の出来事。
ありがとうございまいした。
今の仕事が落ち着いたらまた参加させていただこうと思ってます。

っていうか確定申告の資料もまだなんですが・・・
【2005/02/26 05:09】 | 日記 | トラックバック(0) | コメント(0)
mallocとfree
恥ずかしながら、はまりました。

この前作ったTemplateライブラリ、実際のテンプレートとなるHTMLファイルを読ませたら何回やってもmallocとかfreeのところで落ちる。
gdbでデバッグするとchunk_allocとかchunk_freeでsegmentation fault。
渡しているアドレスはあってるし、サイズが大きすぎるわけでもないし。
PlamoLinux2.1.5 karnel2.2.18
カーネルのソースまで落としてきて調べたけどわかりませんでした(;-;)

落ちるのは、テンプレートを解析してて一時的に文字列バッファを
確保するとき。chunkで落ちてるってことは、どっかで
メモリがはみ出してるんだろうから、あらかじめ固定で大きめのバッファを
もっとけばいいかなという安易な方法を試してみたら解決できました(^^;

でも、mallocに渡せるのはsize_tで、ヘッダを調べると
unsigned intみたいだから4Gくらいは大丈夫そうなんだけど。
実際のテンプレートっていったって、所詮HTML。
せいぜい数十KB程度で、それより大きなバッファなんて要求しないのに。
おかしい。

とりあえず動いたけど気に入ってません。
でも時間がないのでとりあえず保留。
【2005/02/26 04:48】 | Pro*C | トラックバック(0) | コメント(0)
DoxygenとGraphVizとHtmlHelpWorkshop
以前使ったことがあったDoxygen。
パソコンを買い換えてからインストールしてなかったので
久しぶりにダウンロードしてきて使えるようにした。

Doxygen

HTMLとかLATEXとかRTFとかXMLとか、CHMとかの形式で
CやC++やJavaのソースのドキュメントを作ってくれる。
クラス図とか、インクルード関連図とか、関数の呼び出し図とか
参照元、参照先の一覧なんかも勝手に作ってくれるので
非常にわかりやすい。

ただし図の作成には別にAT&TのGraphVizというのが必要。
GraphVis

使い方はソースファイルの中にコメントを書いておき、
DoxygenWizardでGUIで設定してSTARTするだけ。
でもこのWizard、フォルダ名の日本語が化けちゃうのが残念!
詳細は本家で見るとかググってください。

あ、Configurationについては、ちょっと前のバージョン用のが
日本語訳してくれてる人がいました。

Doxygen Manual: Configuration 日本語訳

あと、CHM形式で出力するとファイルが1つにまとまるので
持ち運びとかも便利でいいかも。
そのためにはさらにMicrosoftのHTML Help Workshopが必要。

HTML Help Workshop


ちなみにPROJECT_NAMEとOUTPUT_DIRECTORYについて
Doxygenファイルをエディタで編集して日本語にしてみた結果は、
PROJECT_NAMEに日本語名を指定した場合はちゃんとドキュメントが生成できたけど
OUTPUT_DIRECTORYはdoxygenの実行エラーになりだめでした。
日本語フォルダ名には対応してないみたい。
【2005/02/24 14:59】 | 開発Tips | トラックバック(0) | コメント(0)
C言語用のHTML::Template
お久しぶりです。
誰も見てないと思いますし、私も見てませんが
ちょっとネタができたので書きに来ました。

最近、ここの社長が面白いんで応援してます。
コンピュータ関係の仕事をしてるということで
引き合いに出されて「君も頑張れ」みたいに
言われることがあるんですが、
コンピュータ関係の人がみんななれるなら
今頃日本は社長だらけです(^^;

それよりもむしろ経営。
プログラム作りとか仕様作りとかをあくせく
やってるうちは手間賃+αなので、事業とか見えてきません。
いや、ほんとは見えているのに見ていないのか?
そんなに気にしてないけど、でも5億くらいは稼ぎたいものです。
頑張って仕事してるんだから、
宝くじ買って儲かる以上には儲けないとおかしいでしょ。

というわけで、日常的なお仕事の話を。
最近PerlでCGI作るときに使ってたのが
Walrus::SessionとHTML::TemplateとDigest::MD5、あとBlowfish。

今回はCでCGI作らなきゃいけなくなったんだけど
Templateライブラリがない。。。
というわけで、自作してました。

構造体でオブジェクト指向もどきにしたほうがよかったかなと
今になって思ったりするものの、
まぁ、とりあえず似たような感じにできたのでよしということに。
あとでバージョンアップするつもり。
いつになるやら(^^;

HTML::Templateは内部で共有メモリ使ったり
キャッシュしたりして高速化されてるみたいだったんだけど、
そこまでやってる時間はなし。
せめてシンボルテーブルはハッシュに・・とも思ったけど
どうせ1つのテンプレート内で使うタグの数なんて
せいぜい20個とかなんで、単純なリストで間に合わせ。
テンプレートの解析結果はTMPLタグとそれ以外をツリーで管理。

Perlだとハッシュのリファレンスでレコード作って
それを配列にしてテーブル構造にしてあったんだけど
単純配列をループ数にしたがって列行展開する関数で代用。

というわけで、この自作Templateライブラリを使って
ようやく本題のCGIを作成します。

それにしてもなんでこう年度末ぎりぎりまで仕様が決められないのか。
愚痴はたくさんあるけど、そんな時間もないし、ま、いいか。
【2005/02/23 12:08】 | Pro*C | トラックバック(0) | コメント(0)
リアルシステムズ      情報工学技術士事務所


情報工学部門の独立技術士が思うこと

ブログ内検索

カテゴリー

プロフィール

佐藤 誉範

Author:佐藤 誉範
リアルシステムズ

平成3年からソフトハウスでシステム構築を行ってきました。
平成15年に技術士(情報工学部門)の資格を取得し、独立してリアルシステムズを創業。

情報システム構築に関することなら
どんなご相談にも親身に対応させていただきます。
一緒により良いシステムを考えましょう!

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

天気予報

リンク

このブログをリンクに追加する

RSSフィード

ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。