ランダムウォーカー

守備範囲はコンピュータ、英語、Windows など。 あと株も。 

Ads by Google  (スポンサー広告)

                    --/--/--(--) --:--:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Com(-) ] [ Tb(-) ] [ top↑ ]

debug on で vista freeze  (Programming::Windows VIA C/C++)

                    2008/03/03(Mon) 02:07:47

すごい遅いペースで読んでいる。やっと3章に入った。この章に書いているようなことはちょっとは理解しているつもりなので早く済むと思う。

しかし、さっきちょっと2時間くらい無駄な時間をすごしてしまった。たぶん vista のせいで。

今後のために、kernel の構造体を windbg のローカルカーネルデバッグで、構造体シンボル解決させて見ようと思ったのだけど、どうも vista だとローカルカーネルデバッグができないらしい(XP ならできる)。

で、調べたら debug モードで起動したら OK らしいので、bcdedit で新しく debug モードで起動するブートエントリを作成して、そのエントリから起動してみた。

そしたらなぜか完全にフリーズしてしまいやがった。三回トライしたが、三回ともフリーズした。フリーズするタイミングはまちまちなので、ひょっとして HW が壊れたかと不安になったのだが、どうやら debug を off にしているエントリからだとフリーズしないようだ。

ということで、vista で debug を on にすると、高頻度でフリーズする。ということになるが、そんなアホな話聞いたことがない。HW 依存の問題か何か? まぁ安い HW なので仕方ない気もする。というか os の機能の on/off でフリーズする/しないが分かれるので OS の問題かもしれない。

一応、がんばってデバッグしてみようとして、フリーズしたとこでクラッシュさせようとしたのだが、どうもフリーズしたタイミングで KB クラッシュが効かない。残る手段は、もう一台 の PC からリモートでデバッグすることになるが、さすがにめんどくさいし、接続機器とかも無いので断念。

でももうすぐ SP1 でるし、それで直ったりしてくれないかね。


では本題。いや、本題はもう終わったか。
今は Object のアクセス権についての節を読んでいる。vista はセキュリティにやたら厳しくなったので今まで API 越しに レジストリの all access を要求していたアプリケーションは失敗してしまう場合があるとのことだ。アクセスを要求するのは、API の引数からで、アクセスが妥当か判断するのは、そのオブジェクトが作成された際に作成された、カーネルオブジェクトの構造体メンバ。

具体的な違いとしては、たぶんこうだ。

デフォルトのアクセス権で作成されたカーネルオブジェクトを、all access でハンドルゲットしようとしたら、vista では失敗し、xp では成功する。これはデフォルトのセキュリティレベルが変わったからだ。

また、オブジェクトがカーネルオブジェクトかそうでないかを見分けるには、オブジェクトを作成するときに使った API を見ればいい。API に渡す引数の中で、セキュリティ情報(_security_attribute)を渡していたら、その API はその先でカーネルオブジェクトを生成しているとういことになる。

基本、カーネルオブジェクトはグラフィック関連のオブジェクトは持たない。カーネル空間は貴重なので、馬鹿でかいグラフィック関連の情報は入れられないからだ。

また逆に、なぜユーザオブジェクトにセキュリティが必要ないのかというと、プロセス固有のユーザオブジェクトが、システムにとってあまり重要でないからだろう。なんでもかんでもセキュリティを考慮しだすと、効率や生産性とかが犠牲になる。引数も多くなりプログラマが混乱しだす。

やっぱ windows はよくできている。大学院までは unix で行こうと思っていたのだけど、乗り換えてたぶん正解。linux は OS ビルドが個人レベルで簡単にできるのが長所だが、たぶんそれは同時に短所でもある。互換性がビルドによっては維持されなかったりするからだ。これじゃあ AP 側は苦労するのも無理ない。

互換性は超大事です。

[ コメント (0) ] [ トラバ歓迎 (0) ] [ top↑ ]
- エントリー -
- 投稿エリア -



Pass:  管理者にだけ許可:   

 記事 [ debug on で vista freeze ]  トラックバック

- エントリー -


この記事にトラックバック(FC2ブログユーザー)

プロフィール

Author:りん
FC2ブログへようこそ!

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

FC2Ad

FC2ブログ