出張。
日が傾いた頃に起床。
先日のppcsimのSegfaultを追いかけ。シミュレータメモリリストを
眺めてみると、何故か異なるメモリブロックに同じ先頭ポインタが
入っているのを発見。Segfaultの直接の原因は、同じポインタが
入っている二つのリストを順にfree()した時に、二番目のリストのポインタは
一番目のリストのfree()により既にfree()されている為、死ぬという
事でした。で、誰が
同じメモリポインタを返しているのかを追いかけたところ、
なんとmalloc()が返しており、なんかちょっとお手上げ気味。
因みに、brk()の
エミュレーションで使用される領域とテキスト領域とがぶつかって
いたので、シミュレータ上のプログラムがbrk()によるメモリ割り当てを
行った後でデータを書きかえると同時にテキスト領域が潰された結果、
先日のようなUnknownInstructionが発生したものと思われます。
この辺を手がかりに、Changelogの履歴を探ってみるのが先かも。
Changelogをみた所、2003/02にnewlibのmallocr.cに少し手が入って
いるようだったので、それより以前の2003/01頃のsnapshotのソースと
比較した所、コードレベルの違いは全く無し(インデントでタブとスペース
の違いはあった.diff -b で差分無し)でした。謎。
こんなのだったら簡単な再現プログラムで落ちそうな感じだったので、
書いてみたところ、バッチリ再現(^^;
test> cat malloc_test.c #include <stdlib.h> #include <stdio.h> //#define MALLOC_SIZE 0x00fffff4 #define MALLOC_SIZE 0x01000000 int main() { unsigned char *p[2] ; p[0]=malloc(MALLOC_SIZE) ; if( p[0]==NULL ){ printf("malloc error 0\n") ; exit(-1) ; } p[1]=malloc(MALLOC_SIZE) ; if( p[1]==NULL ){ printf("malloc error 1\n") ; exit(-1) ; } printf("0 : 0x%08x\n",(unsigned int)p[0]) ; printf("1 : 0x%08x\n",(unsigned int)p[1]) ; free(p[0]) ; free(p[1]) ; exit(0) ; } test> gcc malloc_test.c test> ./a.exe 0 : 0x866ab008 1 : 0x866ab008 Segmentation fault (core dumped)
少し早めに帰着。ふぅ。
Cygwinのスナップショットの新しいのが出ていたのでbuild。でも、
先日のVirtualFreeで失敗する件は変化無し。
少しソースを眺めてみたところ、メッセージは
winsup/cygwin/cygthread.cc:cygthread::terminate_thread()内
から出力されている模様。ここまではエラーメッセージ通り。
で、次のような感じになっているようですが、
248 while (!stack_ptr) 249 low_priority_sleep (0); 250 251 MEMORY_BASIC_INFORMATION m; 252 memset (&m, 0, sizeof (m)); 253 (void) VirtualQuery (stack_ptr, &m, sizeof m); 254 255 if (!m.RegionSize) 256 system_printf ("m.RegionSize 0? stack_ptr %p", stack_ptr); 257 else if (!VirtualFree (m.AllocationBase, 0, MEM_RELEASE)) 258 system_printf ("VirtualFree of allocation base %p<%p> failed, %E", 259 stack_ptr, m.AllocationBase);
(gdb) 21 free(proc_list->proc[id].mem[i]) ; (gdb) print proc_list->proc[id].mem[i] $5 = (unsigned char *) 0x8d020008 <Address 0x8d020008 out of bounds> (gdb)
昼過ぎ起床。寝過ぎ。
gcc-3.2.3のbuild結果にファイルが何も入っていなかったので、
不思議に思って調べてみたら、前回実行したメモをコピペで
そのまま実行した所、3.2.1がbuildされてしまった模様(激汗;
昨日のDLLずっこけログもそうやって実行してるし(<気づけよ)
で、3.2.3をbuildしてcastテストのプログラムを実行してみたの
ですが、やっぱダメそう。
gcc> cat cast.c #include <stdlib.h> #include <stdio.h> int main() { double pi ; unsigned int *ip ; pi=3.141592654 ; printf("%f\n",pi) ; ip=(unsigned int *)&pi ; ip++ ; *ip |= 0x80000000 ; printf("%f\n",pi) ; } gcc> ./xgcc.exe -I../../gcc/ginclude -S cast.c gcc> gcc cast.s gcc> ./a.exe 3.141593 -3.141593 gcc> ./xgcc.exe -I../../gcc/ginclude -O2 -S cast.c gcc> gcc cast.s gcc> ./a.exe 3.141593 3.141593 gcc> ./xgcc --version xgcc (GCC) 3.2.3 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
出張。帰着ふぅ。
Cygwinの最新スナップショットと、gcc-3.2.3をダウンロード。
ダウンロード中に、出張帰りに買ってきた攻殻5などを鑑賞。ぴひゅー。
Cygwinのスナップショット(20030421)はビルドはできたのですが、
それを使用してgccのconfigureを実行するとDLLがエラーをぶっこいて
死亡。
gcc-3.2.3> ./contrib/gcc_build -o build -d ~/develop/gcc_cyg/gcc-3.2.1 -c '--prefix=/usr --enable-languages=c' build Configuring: /cygdrive/c/tane/develop/gcc_cyg/gcc-3.2.1/configure --prefix=/usr --enable-languages=c 94 [main] sh 1457111 cygthread::terminate_thread: VirtualFree of allocation base 0x19A6FFA0<0x19860000> failed, Win32 error 0
出張。
出張。
出張。
出張。
出張。
昼前起床。
髪切りに床屋へ。ふと見るとピンポンの総集編が置いてあったので
思わず手に取って読んでしまったり。雑誌連載時にリアルタイムで
読んで以降、今日まで一度も原作を読み返す事は無かったのですが、
改めて読んで激ハマり(^^;。原作の細かい所は微妙に忘れてしまって
いたので、DVDの実写映画を観た時はそれなりに楽しめたのですが、
今度は逆に実写映画での映像化にあたって、「原作のこの絵を実写化
していたのか」とか、原作と映画の微妙な違いなど、また別の意味で
楽しめました。気づいた実写化のシーンの中に、ラケットのラバーと
球のぶつかる瞬間の超拡大CG映像のシーンがあるのですが、これ、
原作の試合シーンの流れの中で二コマくらいで描かれた絵を再現
したものだというのが判ってちょっと感動しました。
というのも、このシーンは映画のみの
全く新しく後で考えて作り付け足された映像なのだと勝手に思って
いたのですが、絶対見えないであろう画を原作マンガ中で実際に
描いてあったという事と、そのわずか二コマの絵を見逃さずに
CG映像化し、迫力ある一つのシーンとして作り上げていた
と言う二つの点に気づいたという所からだったりします。
でもなにより、見逃した原作最終話をやっと見れた事が一番
だったかも(^^;
そんな感じでえらく待って、終ったらすっかり日が暮れていて
ぐんにょり。
本屋に。床屋で何気に読んだスピリッツに連載されている
「高校アフロ田中」が面白かったので単行本を探したのですが
見つからず。そういや最近のスピリッツって表紙がグラビアに
なっているのですな。確か、対抗誌であるヤングジャンプは
アイドルグラビアを使っているのに対して、素人女子大生水着
写真で勝負している...とかいうのをスピリッツ誌上に書いてあった
ような気がしたのですが、やっぱこの不景気にはナリフリ
かまってられませんか。
そんな感じで明日から出張です。
夕方頃起床。寝過ぎ。つーか腹が減って起きた模様(汗;
キャリバーIIで武器を全種お買い上げ。あとはExtraArcadeで全キャラ
クリアなのですが、ノーマルArcadeよりもCOMが強くて
苦戦気味。
そういや、ナムコがセガに合併を申し入れた話。もし合併が実現
すると、「VF vs 鉄拳」とか出たりするのかしら?あぁ、でもなぁ、
VFも鉄拳も あまり色気が無いのだよなぁ。それよりも、
テクモとナムコのカップリングで「DOA + キャリバー/どっきん
女だらけの水泳大会」とかは どう?(<どうって.....)
操作はひたすら連打で「揺らし対決ゲーム」とか、
どう?
(<バカですか)
少し前から、メーラーをOutlookからNetscapeのmessangerに
切り替えたのですが、messangerで分割メールをで受け取った
ところ、引っ付け合わす事ができなくて死亡。分割メールを
引っ付け合わせられないmessangerもアレなのですが、
メールサーバーへの負荷軽減の効果があるとは言え、今の
御時世 わざわざ分割して出すなんてのもナンセンスな気分。
でも、分割して出したのは自分なんだけどね(<ぉぃ)
藤原紀香が出ている「ほぐすサプリ」とかいう飲料水のCM。
なんか、ヤバい薬を飲んだみたいに見えるのは気のせいか?
出張。帰着。ふぅ。
キャリバーIIをやっていたら眠くて死亡。
出張。
出張。
出張。
出張。
昼頃起床。
大往生やったり、ごくせんスペシャルの再放送を観たり。
大往生の1面だけでもフルコンボできる様にならないかと思ったの
ですが、基本的に無理っぽいので練習諦め気味。後半ステージを
やっていて思ったのですが、コンティニューでやっていると
思わず「リフレクトフォーッス!」って叫びたくなるくらい
画面が敵弾で埋め尽くされます。DVDのそれとか見ていると、
それほど敵弾が出ている様にないのですが、どうも敵の出現
位置が完全に覚えられている為、比較的すぐに倒してしまって
もコンボが繋がる敵は、弾を出させる前に殺ってしまうので、
画面が埋め尽くされないという感じに思えました。埋め尽くされない
とは言っても、普通には避けられないくらいバラ撒かれている
のでそれでも十分難しいのですが、5面とかは途中で死ぬと
常に追い詰められている状態になってしまうので、事実上
復活不能って感じに思ったのですがどうでしょう。後、ハイパー
使うと、実際には画面上の弾を一掃できる点で、準ボンバー的
な役割を果たしているのですが、もしスコアを気にしないと
するならば(気にせず使っている所を見ると、ハイパーを
持っているだけでは得点には何も関係しないらしいので)、
恐らくハイパー未使用でノーミスクリアするのが一番極まって
いるという感じがします。そういうやり込みが
見てみたいと少しだけ思ったりして。
本屋とゲーセン。キャリバーIIを何気にやってみたり。まったり
一人で遊んでたらいきなり乱入(^^; かーーっ!断るっ!!という
事はできませんので、やってみたらストレート負け。つーか、
対人だと勝てるレベルじゃないんです(>私)。決して2P側で
やってたせいでは無いらしい。
本屋でG-taste(6)を買ったり。色指定絵(原画)も載せる様になった
のは最近になってからみたいなのですが、いつ見ても異常に
細かいのに色んな意味で感心してみたり。
ちょこーりコーディング。すぐ煮詰まって、キャリバーII(ぉぃ;
どうにかWeaponMasterモード全ミッションコンプリート。
貯まったお金で残りの武器を購入。でも、全ては揃わない感じ
なので、金稼ぎの為にコンプリートしたミッションを何度か
やる必要がありそうです。あぁ、後はExtraモードで全キャラ
コンプリートくらいか。
そんな感じで明日から出張です。
出張。帰着。ふぅ。
帰りにPS2版「怒首領蜂大往生」をゲット。
飯食べながら特典DVDを閲覧。もうね、飯を食べる口が度々止まって、
食った気がしませんよ(ぉぃ; 凄過ぎて、逆にスゴイかどうかが判らなく
なるくらい、簡単そうに避けているのですが、
ふつうは無理、絶対無理。
そんな感じでした(^^;。で、ゲームをプレーイ。むぅ、やっぱ
あんなに繋がらないよなぁ。てゆーか、私がやるとアーケードでも
そうなのですが、3面ボス辺りはもう避けられる気がしません(^^;
蜂に至っては蛹含め、あのマスゲームのような弾幕を見ているだけで
目が回ってくるという始末(<ダメ過ぎ)。そんな感じです。
シミュレーションモードに入っているスーパーリプレイも結構スゴイ
のですが、二周目やラスボスの方は苦戦している感じ。これを
見るとDVDのそれが如何にスゴイのか再認識したり。
んー、Easyだと弾足が少し遅いので弾の隙間が広く見え........
ないな、やっぱり(^^;
出張。
出張。
出張。
出張。
出張。
昼過ぎ起床。ちょっこり出社。今日は暖かくて良い感じ。
帰りに本を買ってきたり。
ヒカ碁(21)読み。ぴひゅー、続きが楽しみ。
初めて「ファミ通Wave DVD」を買ってみました。
やり込みプレイが観られるというのは、良い時代になったものだと
思いました。てか、メタルギアソリッド2 サンズ・オブ・リバティ
で、ハリアー相手にハンドガンでノーダメージクリアとか、
凄過ぎですよ。他にも大往生のステージ1フルコンボだとか、真魂斗羅の
ラスボスノーミスプレイだとか、斑鳩のスゴイのとか色々。
やり込みのDVDも出ている様で、その中に、先日何気に思い出した
SFCのF-ZERO MUTECITY-Iでのスゴイのとか収録されている
らしい。見たら買ってしまうかも(^_^;
キャリバーII。アーケードで一応全キャラクリア。20人以上
は出ないのかしら?
WeaponMasterモードは残り4ミッション。洞窟系
は長いのが難点。で、バトルシアターモードをお買い上げ。
でも、DC版のキャリバーに比べてカメラがあまり
近くに寄れず。観察にはイマイチ使えなくなっているという
感じ(<しつこいです)。ゲームレベルを一番高くして、
CPU vs CPU で見ていると、普段見たこと無い技が出まくりで
面白いです。ただ、ガードインパクトのスラッシングにハマる
(互いにガードインパクトを出しつづける)事が多いのが
難点かも。
風呂の水をため過ぎたり沸かし過ぎたりなんかダメダメ。
そんな感じで明日から出張です。
出張。帰着。ふぅ。
どもども。「R-TYPE FINAL」は楽しみにしてます。
でも、R-TYPEシリーズは年の為かきつくなって来たと、
デルタを久々にやって、すっかりヘボになっている加減に
感じる今日この頃です(^^;。
出張。
出張。
出張。
回復せず一日死亡。いや、ウソじゃなく。