[Win32]STATUS_STACK_BUFFER_OVERRUN

 0xC〜はシステム例外、0xE〜はアプリケーション例外(アプリケーション製作者が独自に定義した例外)であり、エラールックアップなどではコードの意味が調べられない。
 というわけで、備忘録をかねて、自分が発見したWindowsの例外コードと調査結果については、当ブログでも継続的に取り扱っていこうと考えている。

more...

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Development][VC++] 意図的にデッドロックを発生させる

 変なコードですが、擬似的な親子二つのプロセスを立ち上げて、一方が他方のプロセスを監視しています(実際にプロセス間に親子関係があるわけではありません)。
 先に疑似親プロセスを起動し、続いて疑似子プロセスを起動します。
 疑似親子プロセスの間で意図的にデッドロックを発生させています。そのため、疑似子プロセスが消滅(このままだとCTRL+Cなどで意図的に停止しないといけませんが)すると、デッドロック状態が解消され疑似親プロセスも正常終了します。

 これら二つのプロセスはどちらも同じ実行ファイルから起動します。疑似親プロセスの起動には/pスイッチを使用して、疑似子プロセスの起動には/cスイッチを使用します。

 これだけではほとんど意味はありませんが、常時疑似子プロセスを監視して、疑似子プロセスが消滅した時点で疑似親プロセスに何らかの処理をさせることができます。(こういう場合、ふつうはプロセスのハンドルを取得すると思いますがね・笑)

 最後に、疑似親プロセスが、500msecごとにWaitをLoopさせていますが、疑似子プロセスがミューテックスハンドルを握り込んだまま消滅するとオブジェクトの状態が怪しくなるためです。当初は疑似子プロセスが終了したところでWAIT_ABANDONEDが返ってくると予想していたのですが、私がタメしたXP SP3上ではそのまま疑似親プロセスがロックされていました。

 ふつうはシステムオブジェクトをロックしたままプロセスを終了させるような凶悪なことはせず、この場合は疑似子プロセスのプロセスハンドルをWaitすると思います。その場合、疑似子プロセスが終了したところでロックが解除され、WAIT_OBJECT_0が返ってくるでしょう。

more...

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Other]209/8/28 第6回UMTPモデリング技術セミナー、参加レポート

 UMTP Japan - UMTPモデリング技術セミナー 第6回開催(2009-08-28)のご案内

に、参加してきました。

 会場はオフィス内でしたので、周辺写真等は撮影しておりません(もっとも、有名なビル街のまっただ中ですので、場所の特定は簡単ですね)。

 当日は快晴で、とても暑い一日でした。開始時間が13:30ということで、すこし前までお昼の時間帯でしたから、エキナカから地下道を通ってビルに到着するまで、かなりの人混みだったことを覚えています。

 このセミナーは、主にUMTP L2合格者を対象としたものだそうで、中心としているテーマは要件定義でした。その中で、UMLを拡張したsysMLという表記法をご紹介いただきました。

more...

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Windows][Visual Studio 2008][VC++]signal(CRT)

 VC++環境でsignalの動作を確認してみた。
 サンプルは、無限ループでひたすらコンソールに”.”を標準出力する。

 いろいろ試してみてわかったこと。

  • CTRL+CでSIGINTを発生させても、すぐにプロセスは終了しなかった
    (SIGINTを受信するとコンソールに”SIGINT\n”と表示されるが、その後も”.”が何個か表示されていた)
    (追記:どうやら、stdio.hで定義された入出力関数はシグナルに同期しない、つまりシグナル関数内では使用禁止の模様)
  • [タスク マネージャ]の[プロセス]タブから強制終了すると、SIGTERMを受信する前にプロセスが消滅するっぽい?
  • taskkill /fすると、SIGTERMを受信する前にプロセスが消滅するっぽい?

 強制終了がハンドリングできないところを見ると、上記の下二つは9番(SIGKILL)を投げていると考えればいいのでしょうか。

more...

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Win23API] メールスロット動作検証サンプル

 メールスロットのサンプル。

 「セッション 0 の分離」対応に使えるかどうかを検証するために使用。

 使い方は、ビルドモジュールのインスタンスを二つ立ち上げる。/sスイッチを付けた方がメールスロットサーバで、/cスイッチを付けた方はクライアントとして動作する。

 /sをつけて実行したメールスロットサーバは、クライアントからの書き込みを待機する。

 /cを付けて実行したクライアントは、"Test."という文字列をポストする。

 メールスロットサーバは、ポストを受信したらポストされた内容(=Test.")をコンソールに表示する。

more...

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[wINDOWS]メモ

 20009/6/27文の勉強メモ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Visual C++ 2008] (const)char*と_TCHAR*

 Visual C++ 2008でちょっとものを作っていたとき、なんとなく引っかかってしまったことがあったのでメモ。

more...

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Other] 今日の勉強の成果とかメモとかクリップしたネタとか

  1. 今日のクリップ(縮退運転中) - ITドカタのWeb巡回日記
  2. ITドカタ的tumblr - くわぞうメモ ActiveDirectoryにユーザーアカウントを作成する権限を一般ユーザー(グループ)に部分的権限委譲する
  3. 細々とITドカタ的なことをやらせて頂いてます  [Active Directory ユーザーとコンピュータ]コンソールの既定のコンテナ ※復習もかねて。ついでなのでコメントと言うことで補足情報を追記
  4. ITドカタ的tumblr - Windows][W2K3][Active Diractory] コンテナの管理権限を委譲する
  5. ITドカタ的tumblr - [Windows][W2K3][Active Directory]OUの管理権限委譲にはウィザードを使うといい

とりあえず現時点ではこれだけ。PCを閉じたらまた勉強に戻るつもり。

 

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Other] 読書ノート『ピープルウェア』 ※書きかけ中断

 この本を読んだのは、もう何日も前のことなんだけど、読書メモをageるつもりがそのまま放置されていたので今からアップする。

ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵
(2001/11/26)
トム・デマルコティモシー・リスター

商品詳細を見る

 週末は読書三昧 - ITドカタのWeb巡回日記から続いている。

more...

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[jhomework-2009-03-16-高度午前1向け][jhomework-2009-03-16-マネージャ向け]


 JIS Q 9001 (IS0 9001) で内部監査について規定していることはどれか。

 ア 内部監査では,品質マネジメントシステムが定められたとおり正しく機能しているかどうかを,予告することなく不定期に確認する。

 イ 内部監査では,品質マネジメントシステムの効果的な実施と維持,個別製品の実現計画や規格要求事項への適合を確認する。

 ウ 内部監査は,社内のシステム監査部門又はシステム監査技術者が行う。

 エ 内部監査を実施する前提条件として,IS0 9001 に基づく品質マネジメントシステムの審査登録が必要である。

この記事は、斉藤末広氏提供『宿題メール』をもとに作成されました。


more...

theme : 情報処理技術者試験
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

tag : 情報処理

[Win][Dev][VC++] VC++ではbad_allocは非標準

 (追記:2009/3/19)以下の記述は、VC6までの話です。



 ロベールのC++教室 - 第49章 破壊と創造 -

 まさかVC++でtry〜catchを使う気になるとは思ってなかったので、これまであんまり調べてなかった。
 VC++は標準でbad_allocを投げないなんて。
 理解できないわけではないんだよね。Windowsネイティブの例外処理はSEHが基本だから。
 でも、new/deleteしてる関数内だとSEHを使えないという制約があるのだ。

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Win32API] Windowsサービスの実装方法について、ちょっと調べてみたこと

 main関数は,ServiceMain関数をSCMに登録した後で制御を返さなければなりません。

(マーシャル ブレイン (著), ロン リーブス (著), Marshall Brain (原著), Ron Reeves (原著), ドキュメントシステム (翻訳) 、『Win32システムサービスプログラミング改訂版』p.463,ピアソンエデュケーション)

 これって、main関数のライフラインはStartServiceCtrlDispatcher呼び出しと一致するということかな?

 一方、

 このスレッドを開始すると,その後でServiceMain関数は,一般的にイベントを待機する状態に入ります。ServiceMain関数は,サービスが停止されるときまで,制御を返してはいけません。ServiceMain関数が制御を返した場合,サービスが停止されるので,SCMは再びServiceMain関数を呼び出してサービスを開始します。

(マーシャル ブレイン (著), ロン リーブス (著), Marshall Brain (原著), Ron Reeves (原著), ドキュメントシステム (翻訳) 、『Win32システムサービスプログラミング改訂版』p.464,ピアソンエデュケーション)

とあるが、これってSERVICE_STOPするまで、SCMは何度でもServiceMainをコールするということでしょうかね?


 ちなみに、SERVICE_CONTROL_SHUTDOWNのコントロール処理中に、Handler関数内でWAITをかけると、サービスがハングする。これはガチ。

 最初見たとき、なんじゃこりゃって思った。そんな実装ですた。

 あと、サービス停止中にHandlerでWAITかけると、「タスクマネージャ」上ではプロセスが消えてるのにSCM的には「停止処理中」になっているような?






Win32システムサービスプログラミング (Windows2000 Technologies Series)Win32システムサービスプログラミング (Windows2000 Technologies Series)
(2002/01)
マーシャル ブレインロン リーブス

商品詳細を見る

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証
カレンダー
10 | 2009/11 | 12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
最近の記事
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
いろいろリンクボタン
購入したものなど
埋め込みe-Words