金曜日, 4月 10, 2026

TMIDIがクラッシュするようになったときの対策

最近、久々にTMIDIで昔のMIDI聞こう♪と思ってダブルクリックしたら、何故か起動時にクラッシュして起動しなくなっていました。 

 「なんで~(;゚▽゚)」と思って、いつものChatGPT先生&Gemini先生&Claude Sonnet先生に相談します。 

その結果をまとめると、 

1)Werfault.exe(アプリがクラッシュしたとき、自動的にMSに報告するための情報を集めるツール)が取るダンプ(=メモリダンプ(memory dump):当該プロセスのメモリ領域を取ってくる)は最小のものなので、まずはクラッシュしたときのちゃんとしたダンプを取れ。 

2)Windbg(Microsoft Storeで無料)で解析しろ。 

とのこと。 

まず、1)については、 
(1) Sysinternal謹製の「procdump」を取ってくる。 
(2) Microsoft StoreからWinDbgをインストール 
(3) 管理者権限で「procdump -accepteula -e 1 -e -h -ma -w TMIDI.EXE d:\Dumpフォルダ」で、TMIDIがクラッシュしたときにダンプ取るように仕込む。 
(4) TMIDI実行→即クラッシュ 

続いて2)については、 
(1) 取られたダンプ(d:\Dumpフォルダの中に入る)をWindbgに読み込ませる(File → Open Crash Dump) 
(2) WinDbgのコンソールで、「.symfix」→「.reload」→「!analyze -v」を順に実行
※ Microsoftのシンボルサーバ設定>シンボル読み込み>解析開始 という流れ。 

 この結果はこんな感じ。
(前略)
*** WARNING: Unable to verify checksum for TMIDI.EXE
eax=0048d554 ebx=000d1222 ecx=1d370000 edx=0048d554 esi=024c927c edi=00000024
eip=024c927c esp=001aefc8 ebp=001aefe8 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
024c927c e808000000 call 024c9289
0:000> .symfix

*** WARNING: Unable to verify checksum for TMIDI.EXE
0:000> .reload
.....................................................
*** WARNING: Unable to verify checksum for TMIDI.EXE
************* Symbol Loading Error Summary **************
(中略)

0:000> !analyze -v

......................................................
*** WARNING: Unable to verify checksum for TMIDI.EXE

*******************************************************************************
* * * Exception Analysis * * * 
*******************************************************************************
(中略)
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 024c927c
ExceptionCode: c000041d
ExceptionFlags: 00000001
NumberParameters: 0

PROCESS_NAME: TMIDI.EXE

ERROR_CODE: (NTSTATUS) 0xc000041d - ユーザー コールバック中に未処理の例外が発生しました。

EXCEPTION_CODE_STR: c000041d

IP_ON_HEAP: 024c927c

(以下略)
…もちろんチンプンカンプンなので、ChatGPT先生に見ていただきましたよ?

上のWinDbgの結果で、一番最後に「IP_ON_HEAP~」とありますよね。 
IP = Instruction Pointer(命令ポインタ)のこと。
なので実はこれ、

『(ほんとはやっちゃいけない)ヒープ領域でコードを実行しちゃった。」

という意味なんだそうです。 

ヒープはmalloc()で、動的にメモリ領域を確保すると作られるメモリ空間なのですが、現代のOSでの管理上、基本的にはデータ用ということで、権限が読み書きOK・実行不可、となっているんだそうです。

と、ここまで来たらピンときますよね? 
要はDEP(データ実行阻止)先生が、ちょっとメモリ管理がアレなTMIDIのオイタを見逃してくれなかったのです。 
※おそらくTMIDI側のバグなのでしょうね。

結局のところ、「システム>バージョン情報>システムの詳細設定>データ実行防止(タブ)」で、TMIDI.exeを例外に入れてあげないと、DEPでメモリの扱いが甘いところを叩き落されてしまうのでした。

まあ、いつから引っかかるようになっちゃったかは分からない(以前は動いてたし)のですが、OSにセキュリティパッチが当たっていく中で、厳格化したタイミングがあったのかも知れません。 
ともあれ、TMIDIをDEPの例外に入れたら、ちゃんと動くようになりました。 

Procdumpすごい、WinDbgすごい、ChatGPTすごい、というところで、このお話は締めさせていただきます。 

おあとがよろしいようで。

月曜日, 2月 09, 2026

ちょっと面白い(?)FAQ

 たまたまITMediaの記事を見ていて、おもしろいな~と思ったのが、

「iPhoneの調子が悪いです」の文言、なぜアイホンのFAQに? 実はAppleと深く関係

でした。

まあ、日本においてはiPhone(アイフォーン)の商標権が、インターホンメーカーのアイホンにあるというのは、有名な話ですよね。

で、この話題のFAQがこれ

IT業界に暮らしていたら(いや、そうでなくとも)、「iPhone=Apple社」の製品という図式は理解できていると思うのです。
しかしながら、このFAQがあるということは、ひょっとして過去に問い合わせが少なからず届いたことがある、ということなのかな?と思った次第です。

先ほどのITMediaより記事を引用すると、末尾のほうに

『アイホンが自社のFAQで他社製品について言及することは、権利者としての立場を明確にするとともに、ライセンス料を得ていることの責務とも解釈できる。』

とあります。

ただ、ここの解釈には少し違和感があり…。

そもそも、権利を持っているのはアイホン社であり、その権利をライセンス料を払って利用しているのがApple社なのだから、アイホン社は適正なライセンス料を支払われている間は、その商標の利用権を認め続ける義務がある、というのは理解できるのですよね。

ただ、貸し出す権利者側に、それ以上の義務があるのかと言われると、どうなのかなぁと。

商標法には、権利者側が商標を許諾できる旨は書いてあるものの、権利者側の義務を具体的に定めるものはないような気もしますし、結局はApple社とアイホン社の契約に基づくものなのでしょうかね。

両社の契約内容が開示される機会はないでしょうが、その中で義務が定義されていたら別なのでしょうけど。

詳しい人がいたら、後学のために伺ってみたいですね。

水曜日, 1月 21, 2026

AIで年齢を推測する

OpenAIがChatGPTの年齢制限のある利用方法について、利用者の年齢を予測して対応する旨の報道がありました。

参考:https://www.itmedia.co.jp/aiplus/articles/2601/21/news063.html

そんなことできるの?と思って、普段使っているいくつかのAIに質問して実験しました。

質問用プロンプト

過去のスレッドを含めその内容から、私の年齢を予想してみてください。
これはあくまでも推論の実験であり、この質問に限り推測や予想を許可します。

各AIの回答

1.ChatGPT

用途:日常の内容からプログラミングまで、割と何でも
利用期間:話題になりだした頃からなので、たぶん3年くらい
推定:ほぼ的中(中央値:実年齢-1)

2.Perplexity

用途:色々ネット検索。若干ゲーム成分多めか。
利用期間:2年弱
推定:若く推測(中央値:実年齢ー11)

3.Google Gemini

用途:日常の内容からプログラミングまで、割と何でも
利用期間:半年程度
推定:若く推測(中央値:実年齢ー11)

4.Claude

用途:ほぼプログラミングのみ ※精度が高いから
利用期間:2年弱
推定:かなり若く推定(中央値:実年齢ー18)
※Claudeでは「チャット」と表現しないと、過去の問い合わせを参照できませんでした

総評

当たり前といえばそうですけど、

・話題が広い方が正確(1>2≒3>4)
・付き合いが長い方がいい(1>3)

という感じに。
皆さんも、普段使いのAIに聞いてみると面白いかもですよ。(´∀`)
あ、ちなみに全部無料版での比較です。
有償版だとどうなるんでしょうね。

木曜日, 1月 08, 2026

ネットワークデバイスにおける時刻同期の重要性

なんだか最近、iPhoneの時刻設定をかなりの未来日にすると、内部キャッシュが消去され、容量が確保できる!というライフハック?が流行っているらしいですね。

でも、iPhoneに限らずインターネットに接続される端末は、時刻がある程度正確でないと色々困ることが出てきます。

例えば…

1)Webサイトの証明書が全部失効扱いになって、マトモに通信が出来ない。

このサイトも含め、今日日ほとんどのインターネットサイトはHTTPSというプロトコル(通信規約)で、暗号化されて通信しています。

その時に、証明書という鍵になるものを使っているのですが、これには安全性の確保のための有効期限がありまして、その検証に失敗してしまいます。

その結果、ブラウザが証明書の検証エラーを提示するので、マトモに通信が出来なくなってしまいます。


2)各サイトの認証に失敗する。

認証の時に使用するセッション管理や認証トークンの生成に、時刻を利用しています。

ですので、時刻が大幅に異なっている状態だと、即時のセッション切れや認証トークンの失効が発生するため、認証がまともにできなくなります。


3)キャッシュ処理やログに異常が発生する

インターネット通信の話ではありませんが、一気に時刻がズレた場合、キャッシュの管理がおかしくなったり(意図しない削除=今回のライフハック?でも生じる)、ログの記録がおかしくなるなど、OSにとって重要な内部処理動作に大きな支障が出る場合があり、大変危険です。


何はともあれ、大事なスマートフォンですし、変な民間療法的ハック?を試すのではなく、正攻法でメンテナンスすべきではないかなと思う次第です。

木曜日, 1月 01, 2026

旧回線終了

 1/1 1:20頃に旧回線の接続が切断されました。

既にほとんどの機器は新回線への移行が済んでいて、旧サーバのみ取り残されていましたが、それも終了。

約4年間でしたが、旧回線にはお世話になりました。m(_ _)m

同時に、これを以て、旧サーバの完全終息となります。

とはいえ、こちらでblogは細々と続けていくつもりですので、今後ともお付き合い頂ければ幸いです。m(_ _)m

新年あけましておめでとうございます

旧年中は大変お世話になりました。
今年も宜しくお願い致します。m(_ _)m

紅白観終わって、子供の仕上げ歯磨きしていたら新年を迎えていましたw