[Gauche-devel-jp] Re: genstub を使った winapi のバインドでコアダンプ

Back to archive index

Kawai Shiro pract****@yahoo*****
2004年 8月 16日 (月) 08:00:06 JST


--- shelarcy <shela****@capel*****> からのメッセージ:
> こんにちは、shelarcy です。
> 
> とりあえず報告します。
> 
> どうやら内部的に Windows API を使うのではなく、stub を使って直接的に
> Windows API をバインドしようとすると、test でコアダンプを起こすよう
> です。
> どうやってこれを回避しているのかと思って net を見てみたところ、直接
> 的にはバインドさせてなかったため、原因はこの当りにあるのだろうと予
> 測を立てています。
> 
> また、関数を直接バインドさせなくても define-enum でパラメーターを出
> してやるだけで、同様にコアダンプを起こすようです。

繰り返しになりますが、これだけではWinAPIが動かないということ以外、
何もわかりませんです。shelarcyさんがヘルプを求めていらっしゃるの
なら、具体的にどこをどうしたいのかを書いてください。そうでなければ、
動いた時に報告してください。

ただ、どうもこれまでのやりとりから推測して、shelarcyさんは自分に
できることの段階をかなりすっ飛ばしてそうとう高度なことにチャレンジ
しようとしてらっしゃるようです。それ自体は良いのですが、いくつかの
問題を解決して頂けると、話がスムーズに行くように思います。

テクニカルタームは、文脈に大きく意味が依存したりするくせに、
その意味は意外に厳密です。「直接的にWindows APIをバインド」とか
「パラメータを出す」という言い方は、サポートする文脈がないと意味を
持ちません。聞きかじりでよくわかっていない言葉を使うのではなく、
なるべく自分で完全に理解している具体的な言葉で、問題を厳密に
表現するように書きましょう。それを言い表すタームがあればその時に
誰かが教えてくれるでしょう。

プログラムが動作しない原因を推測する時、他の人は魔法のように、
現象をぱっと見て「それは多分ここかここじゃないか」と言っているように
思えるかもしれません。しかし、原因の推測というプロセスはそんな
見掛けとは裏腹に非常に厳密なもので、「仮説を立てる→実験して検証する」
をすべての可能な仮説に対して繰り返して行く、という地道な作業に
他なりません。魔法のように解決法を言い出す人は、実はそういう地道な
作業を既にさんざん経験していて、頭の中で仮説と検証のシミュレーションが
でき、さらに各仮説の確からしさに関して経験からくる基準を持っているから
そう言えるのです。

shelarcyさんは、全体をブラックボックスと考えて入力をいろいろいじって
出力の変化を調べているようですが、それからの推測はことごとく外れて
います。ソースがあるんですから、コードの流れを逐次追って、その裏に
あるビットの流れをしらみつぶしに調べてゆくしか、方法はありません。
WinAPIでcore dumpするなら、どこかで変なメモリを見ちゃっているん
でしょう。コードは逐次的に実行されるんですから、まずどの段階で
core dumpしているのかを見つけるのが第一歩です。それを見つける
までは、余分な予想はしないことです。多分外れですから。

--shiro


__________________________________________________
GANBARE! NIPPON!
Yahoo! JAPAN JOC OFFICIAL INTERNET PORTAL SITE
http://mail.ganbare-nippon.yahoo.co.jp/




Gauche-devel-jp メーリングリストの案内
Back to archive index