簡潔かつ乱暴に説明すると、このモジュールは printf デバッギングを簡単且つゴージャスに行う為のものです。
バグベアードはC++プログラマの目となり、その膨大なログで大半のバグを丸裸にします。
なぜ、ビ○ルダーでもゲイザーでもスズキドゲザエモンでもアスコモイドでもスカイラインでもなくバグベアードなのか? それはもちろん "不具合" という意味と "盗聴器" という意味を持つ "bug" をその名に含むからです。 って、そーじゃなくて、なぜ、デバッガじゃなく良識あるプログラマには一般的に悪しき事とされる printf デバッギング用ロガーであるバグベアードなのか? ということについて少々説明しておきます。
最初に断っておきますが、「バグベアードがあればデバッガは不要」などと言うつもりもありませんし、情報収集のアスペクトが直交する(※)関係になるのでむしろデバッギングツールとしては相補する関係になると考えます。
※ある瞬間のシステム全体の情報...いわば空間に対して強いデバッガと、時間に対して強いバグベアードはその情報収集のアスペクトが直交します。
デバッガにはデバッギングの為のツールとしてはあまり頂けない次のような問題があります。
他のも問題はあるでしょうがこれらの問題に対しバグベアードでは次のようになります。
またバグベアードを利用すればソースコード修正後の動作確認もステップ実行の代わりにただ実行してログを確認するだけで済ませるというお手軽なスタイルを採用することもできます。
バグベアード固有の問題についても以下に挙げておきます。
バグベアードにより出力されたログを追跡してデバッグする際は高速な検索ができるビューア(テキストエディタ)を使用することを強く推奨します。 バグベアードが出力するログは非常に膨大になりますので検索性能の差が残酷なまでに現れます。 例えば、約200MBのログの末尾に現れる文字列を Notepad++ で検索したところ約 3 分 30 秒もかかってしまいましたが、同じ環境下でサクラエディタで検索すれば 2 秒もかかりませんでした。その性能差は実に100倍以上にすら及びます。
┌────────────────────────────────────── │日付&時刻:2008-02-24(日) 23:26:11.874 └─────┬──────────────────────────────── 23:26:11.874├┬▽if (1 < current) == true; <tree.cpp>#104 23:26:11.874│├・while (1 < current) == true; <tree.cpp>#109 23:26:11.874│├┬▽if (current %p) == true; <tree.cpp>#111 23:26:11.874││├┬▽if (pn) == false; <tree.cpp>#113 23:26:11.874│││└△if (pn) == false; <tree.cpp>#113 23:26:11.874││├・p(0x00D8FC5C) = 3(0x00000003) <tree.cpp>#126 23:26:11.874││└△if (current %p) == true; <tree.cpp>#111 23:26:11.874│├・while (1 < current) == true; <tree.cpp>#109 23:26:11.874│├┬▽if (current %p) == true; <tree.cpp>#111 23:26:11.874││├┬▽if (pn) == false; <tree.cpp>#113 23:26:11.874│││└△if (pn) == false; <tree.cpp>#113 23:26:11.874││├・p(0x00D8FC5C) = 5(0x00000005) <tree.cpp>#126 23:26:11.874││└△if (current %p) == true; <tree.cpp>#111 23:26:11.874│├・while (1 < current) == true; <tree.cpp>#109 23:26:11.874│├┬▽if (current %p) == true; <tree.cpp>#111 23:26:11.874││├┬▽if (pn) == false; <tree.cpp>#113 23:26:11.874│││└△if (pn) == false; <tree.cpp>#113
いくつかのマクロを適宜定義し、bug.h をしかるべき場所で include しコンパイルするだけです。詳細についてはこのページの情報に一通り目を通してください。
邪道な技術により構築されたバグベアードは邪悪で忌むべき存在です。 またバグベアードの肝であるステートメントハックにより、さながらナノマシンの如くバグベアードのコードはユーザプログラムを隅々まで侵食します。 故にバグベアードの利用にあたっては以下のような注意が必要となります。
┌────────────────────────────────────── │日付&時刻:2008-02-24(日) 18:06:13.739 └─────┬──────────────────────────────── 18:06:13.743├・Hello, Bugbeard! <sample/simple.cpp>#46 18:06:13.744├┬▽Compile Information <bug.h>#2839 18:06:13.745│├・Compiler:Borland C++(0x0564) <bug.h>#2841 18:06:13.745│├・Compile Date:Feb 24 2008 / Compile Time:18:06:11 <bug.h>#2843 18:06:13.746│└△Compile Information <bug.h>#2839 18:06:13.747├┬▽Commandline Argument Information <bug.h>#2849 18:06:13.748│├・argc(0x0012F994) = 1(0x00000001) <bug.h>#2850 18:06:13.749│├・args[0]:o:\cxx\bugbeard\simple.exe <bug.h>#2853 18:06:13.750│└△Commandline Argument Information <bug.h>#2849 18:06:13.751├・args[0](0x00DE21C4) = "o:\cxx\bugbeard\simple.exe" <sample/simple.cpp>#55 18:06:13.752├・このプログラムのファイル名:"o:\cxx\bugbeard\simple.exe" <sample/simple.cpp>#58 18:06:13.753├・return <sample/simple.cpp>#60 ┌─────┴──────────────────────────────── │日付&時刻:2008-02-24(日) 18:06:13.754 └──────────────────────────────────────
BUG_define_logger() の行によりログの出力形式等を指定しています。
NDEBUG マクロが定義された場合の assert() マクロと同様に、BUG_DISABLE_BUGBEARD マクロが定義されると BUG_* な命名になっているコードは全て消え去ります。
なお、Windowsではデフォルトで標準エラーがアスキーモードになっている為、改行コード "\r\n" が無駄に拡張され "\r\r\n" になってしまうので標準エラーをファイルへリダイレクトすると不格好になります。Windowsでは bugbeard::bug_file_writer で直接ファイルに出力するか、bugbeard::bug_OutputDebugString_writer で OutputDebugString() で出力することを推奨します。
このサンプルでは Win32API の OutputDebugString() でログを出力しています。 ご利用のIDEのデバッグ出力表示機能や sysinternals の DebugView などで出力内容を確認できます。
|
┌────────────────────────────────────── │日付&時刻:2008-09-23(火) 22:06:59.771 └─────┬──────────────────────────────── 22:06:59.772├┬▽Compile Information#4450 22:06:59.772│├・Compiler:Borland C++(0x0564) #4452 22:06:59.772│├・Compile Date:Sep 23 2008 / Compile Time:22:06:25 #4454 22:06:59.772│└△Compile Information #4450 22:06:59.772├┬▽Commandline Argument Information #4461 22:06:59.772│├・argc(0x0012D500) = 1(0x00000001) #4462 22:06:59.772│├・args[0]:O:\cxx\bugbeard\work\win.exe #4465 22:06:59.772│└△Commandline Argument Information #4461 22:06:59.773├┬▽Windows Version Information #4505 22:06:59.773│├・Microsoft Windows Vista Business Edition, 32-bit #4508 22:06:59.773│├・OSVERSIONINFO dwMajorVersion:6 / dwMinorVersion:0 / dwBuildNumber:6001 / dwPlatformId:2 / szCSDVersion:Service Pack 1 #4510 22:06:59.773│├・OSVERSIONINFOEX wServicePackMajor:1 / wServicePackMinor:0 / wSuiteMask:256 / wProductType:1 / wReserved:30 #4514 22:06:59.773│└△Windows Version Information #4505 22:06:59.773├┬▽Windows System Information #4474 22:06:59.773│├・wProcessorArchitecture:0 #4488 22:06:59.773│├・wReserved:0 #4489 22:06:59.773│├・dwPageSize:4096 #4490 22:06:59.773│├・lpMinimumApplicationAddress:00010000 #4491 22:06:59.773│├・lpMaximumApplicationAddress:7FFEFFFF #4492 22:06:59.773│├・dwActiveProcessorMask:3 #4493 22:06:59.773│├・dwNumberOfProcessors:2 #4494 22:06:59.773│├・dwProcessorType:586 #4495 22:06:59.773│├・dwAllocationGranularity:65536 #4496 22:06:59.773│├・wProcessorLevel:6 #4497 22:06:59.773│├・wProcessorRevision:3846 #4498 22:06:59.773│└△Windows System Information #4474 22:06:59.773├┬▽Module Version Information #4591 22:06:59.773│├・module:"O:\cxx\bugbeard\work\win.exe" / no version information #4584 22:06:59.773│├・module:"C:\Windows\system32\ntdll.dll" / language:041104b0 / FileDescription: NT レイヤ DLL / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: ntdll.dll.mui #4577 22:06:59.774│├・module:"C:\Windows\system32\kernel32.dll" / language:041104b0 / FileDescription: Windows NT ベース API クライアント DLL / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: kernel32 #4577 22:06:59.774│├・module:"C:\Windows\system32\ADVAPI32.DLL" / language:041104b0 / FileDescription: Advanced Windows 32 ベース API / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: advapi32.dll.mui #4577 22:06:59.774│├・module:"C:\Windows\system32\RPCRT4.dll" / language:041104b0 / FileDescription: リモート プロシージャ コール ランタイム / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: rpcrt4.dll.mui #4577 22:06:59.774│├・module:"C:\Windows\system32\VERSION.DLL" / language:040904b0 / FileDescription: Version Checking and File Installation Libraries / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: VERSION.DLL #4577 22:06:59.774│├・module:"C:\Windows\system32\msvcrt.dll" / language:040904b0 / FileDescription: Windows NT CRT DLL / FileVersion: 7.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 7.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: msvcrt.dll #4577 22:06:59.775│├・module:"C:\Windows\system32\USER32.DLL" / language:041104b0 / FileDescription: マルチユーザー Windows ユーザー API クライアント DLL / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: user32 #4577 22:06:59.775│├・module:"C:\Windows\system32\GDI32.dll" / language:040904b0 / FileDescription: GDI Client DLL / FileVersion: 6.0.6001.18023 (vistasp1_gdr.080221-1537) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18023 / CompanyName: Microsoft Corporation / OriginalFilename: gdi32 #4577 22:06:59.775│├・module:"C:\Windows\system32\PSAPI.DLL" / language:040904b0 / FileDescription: Process Status Helper / FileVersion: 6.0.6000.16386 (vista_rtm.061101-2205) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6000.16386 / CompanyName: Microsoft Corporation / OriginalFilename: PSAPI #4577 22:06:59.775│├・module:"C:\Windows\system32\IMM32.DLL" / language:040904b0 / FileDescription: Multi-User Windows IMM32 API Client DLL / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: imm32 #4577 22:06:59.775│├・module:"C:\Windows\system32\MSCTF.dll" / language:041104b0 / FileDescription: MSCTF サーバー DLL / FileVersion: 6.0.6000.16386 (vista_rtm.061101-2205) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6000.16386 / CompanyName: Microsoft Corporation / OriginalFilename: MSCTF.DLL.MUI #4577 22:06:59.776│├・module:"C:\Windows\system32\LPK.DLL" / language:040904b0 / FileDescription: Language Pack / FileVersion: 6.0.6001.18000 (longhorn_rtm.080118-1840) / ProductName: MicrosoftR WindowsR Operating System / ProductVersion: 6.0.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: LanguagePack #4577 22:06:59.776│├・module:"C:\Windows\system32\USP10.dll" / language:040904b0 / FileDescription: Uniscribe Unicode script processor / FileVersion: 1.0626.6001.18000 (longhorn_rtm.080118-1840) / ProductName: Microsoft(R) Uniscribe Unicode script processor / ProductVersion: 1.0626.6001.18000 / CompanyName: Microsoft Corporation / OriginalFilename: Uniscribe #4577 22:06:59.776│└△Module Version Information #4591 22:06:59.776├┬▽Module Hash #4605 22:06:59.789│├・file:"O:\cxx\bugbeard\work\win.exe" / hash(MD5):DA0A29DA42E371316446BFE64A528921 #4528 22:06:59.792│├・file:"C:\Windows\system32\ntdll.dll" / hash(MD5):172E1B9EB61167AD232291A6761501BF #4528 22:06:59.796│├・file:"C:\Windows\system32\kernel32.dll" / hash(MD5):DC2338093F91BA4E0512208E60206DDD #4528 22:06:59.799│├・file:"C:\Windows\system32\ADVAPI32.DLL" / hash(MD5):C44A1766E93E506EE2102A305799E1A1 #4528 22:06:59.802│├・file:"C:\Windows\system32\RPCRT4.dll" / hash(MD5):520CE99A9C1A3B14078BB39272424652 #4528 22:06:59.802│├・file:"C:\Windows\system32\VERSION.DLL" / hash(MD5):187D588F7A1A45DE48B8540401A90850 #4528 22:06:59.805│├・file:"C:\Windows\system32\msvcrt.dll" / hash(MD5):04CBEAA089B6A752B3EB660BEE8C4964 #4528 22:06:59.808│├・file:"C:\Windows\system32\USER32.DLL" / hash(MD5):B974D9F06DC7D1908E825DC201681269 #4528 22:06:59.809│├・file:"C:\Windows\system32\GDI32.dll" / hash(MD5):F77456EB036D834BFBC700EB2414879E #4528 22:06:59.810│├・file:"C:\Windows\system32\PSAPI.DLL" / hash(MD5):93A1732F7F997E36A5C3893539E2FF02 #4528 22:06:59.811│├・file:"C:\Windows\system32\IMM32.DLL" / hash(MD5):EC17194A193CD8E90D27CFB93DFA9A2E #4528 22:06:59.814│├・file:"C:\Windows\system32\MSCTF.dll" / hash(MD5):030981927E732FD4013910B3B06BD45B #4528 22:06:59.815│├・file:"C:\Windows\system32\LPK.DLL" / hash(MD5):DD496299B7351E16E602FC4299345A33 #4528 22:06:59.817│├・file:"C:\Windows\system32\USP10.dll" / hash(MD5):3122DAF86B33ED8AC4662D07593025D7 #4528 22:06:59.817│└△Module Hash #4605 22:06:59.817├┬▽Memory Information #4623 22:06:59.817│├・load:61% #4628 22:06:59.817│├・TotalPhys:2.98GiByte(3201634304) #4629 22:06:59.817│├・AvailPhys:1.14GiByte(1222332416) #4630 22:06:59.817│├・Used-Phys:1.84GiByte(1979301888) #4631 22:06:59.817│├・TotalPageFile:6.16GiByte(6611963904) #4632 22:06:59.817│├・AvailPageFile:1.14GiByte(1222332416) #4633 22:06:59.817│├・Used-PageFile:5.02GiByte(5389631488) #4634 22:06:59.817│├・TotalVirtual:2.00GiByte(2147352576) #4635 22:06:59.817│├・AvailVirtual:1.14GiByte(1222332416) #4636 22:06:59.817│├・Used-Virtual:882MiByte(925020160) #4637 22:06:59.817│├・AvailExtendedVirtual:0Byte(0) #4638 22:06:59.817│└△Memory Information #4623 22:06:59.817├┬▽Drives Information #4752 22:06:59.817│├・drive:C / type:fixed / label:***** / file-system:NTFS / serial:0x******** / max-path:255 / flags:0x002700FF / sectors-per-cluster:8 / bytes-per-sector:512Byte / available:6.08GiByte(6528913408) / total:74.5GiByte(80003198976) / free:6.08GiByte(6528913408) #4747 22:06:59.818│├・drive:D / type:fixed / label:** / file-system:NTFS / serial:0x******** / max-path:255 / flags:0x002700FF / sectors-per-cluster:8 / bytes-per-sector:512Byte / available:39.0GiByte(41832468480) / total:74.5GiByte(80007262208) / free:39.0GiByte(41832468480) #4747 22:06:59.818│├・drive:F / type:fixed / label:*** / file-system:NTFS / serial:0x******** / max-path:255 / flags:0x002700FF / sectors-per-cluster:8 / bytes-per-sector:512Byte / available:726GiByte(779961614336) / total:931GiByte(1000202240000) / free:726GiByte(779961614336) #4747 22:06:59.819│├・drive:G / type:cdrom #4747 22:06:59.831│├・drive:I / type:removable #4747 22:06:59.842│├・drive:J / type:removable #4747 22:06:59.854│├・drive:K / type:removable #4747 22:06:59.866│├・drive:L / type:removable #4747 22:06:59.866│├・drive:O / type:fixed / label:**** / file-system:NTFS / serial:0x******** / max-path:255 / flags:0x002700FF / sectors-per-cluster:8 / bytes-per-sector:512Byte / available:10.4GiByte(11172679680) / total:114GiByte(122683387904) / free:10.4GiByte(11172679680) #4747 22:06:59.866│├・drive:X / type:fixed / label:***** / file-system:NTFS / serial:0x******** / max-path:255 / flags:0x002700FF / sectors-per-cluster:8 / bytes-per-sector:512Byte / available:143GiByte(154588205056) / total:202GiByte(217409646592) / free:143GiByte(154588205056) #4747 22:06:59.866│└△Drives Information #4752 22:06:59.866├┬▽Monitor Information #4793 22:06:59.866│├・Monitor Rect:(0,0)-(1920,1200) / Work:(0,0)-(1920,1200) / Device:\\.\DISPLAY1 #4786 22:06:59.866│├・Monitor Rect:(1920,176)-(3200,1200) / Work:(1920,176)-(3200,1200) / Device:\\.\DISPLAY2 #4786 22:06:59.866│└△Monitor Information #4793 22:06:59.866├┬▽Display Information #4851 22:06:59.866│├・Display Name:\\.\DISPLAY1 / Context:NVIDIA GeForce 8600 GTS #4867 22:06:59.867│├・Display Name:\\.\DISPLAY2 / Context:NVIDIA GeForce 8600 GTS #4867 22:06:59.867│├・Display Name:\\.\DISPLAYV1 / Context:RDPDD Chained DD #4867 22:06:59.867│├・Display Name:\\.\DISPLAYV2 / Context:RDP Encoder Mirror Driver #4867 22:06:59.867│└△Display Information #4851 22:06:59.867├┬▽All Environment Information #4838 22:06:59.867│├・=::=::\ #4842 22:06:59.867│├・=C:=C:\Users\wraith #4842 22:06:59.867│├・=ExitCode=00000000 #4842 22:06:59.867│├・=O:=O:\cxx\bugbeard\work #4842 22:06:59.867│├・ALLUSERSPROFILE=C:\ProgramData #4842 22:06:59.867│├・APPDATA=C:\Users\wraith\AppData\Roaming #4842 22:06:59.867│├・BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\5.0 #4842 22:06:59.867│├・CLASSPATH=.;C:\Program Files\Java\jre1.5.0_10\lib\ext\QTJava.zip #4842 22:06:59.867│├・CommonProgramFiles=C:\Program Files\Common Files #4842 22:06:59.867│├・COMPUTERNAME=CRUISER #4842 22:06:59.867│├・ComSpec=C:\Windows\system32\cmd.exe #4842 22:06:59.867│├・FP_NO_HOST_CHECK=NO #4842 22:06:59.867│├・HOMEDRIVE=C: #4842 22:06:59.867│├・HOMEPATH=\Users\wraith #4842 22:06:59.867│├・LOCALAPPDATA=C:\Users\wraith\AppData\Local #4842 22:06:59.867│├・LOGONSERVER=\\CRUISER #4842 22:06:59.867│├・NUMBER_OF_PROCESSORS=2 #4842 22:06:59.867│├・OS=Windows_NT #4842 22:06:59.867│├・Path=************************************************************************************************************************* #4842 22:06:59.867│├・PATHEXT=**************************************************** #4842 22:06:59.867│├・PROCESSOR_ARCHITECTURE=x86 #4842 22:06:59.867│├・PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 6, GenuineIntel #4842 22:06:59.868│├・PROCESSOR_LEVEL=6 #4842 22:06:59.868│├・PROCESSOR_REVISION=**** #4842 22:06:59.868│├・ProgramData=C:\ProgramData #4842 22:06:59.868│├・ProgramFiles=C:\Program Files #4842 22:06:59.868│├・PROMPT=$P$G #4842 22:06:59.868│├・PUBLIC=C:\Users\Public #4842 22:06:59.868│├・QTJAVA=C:\Program Files\Java\jre1.5.0_10\lib\ext\QTJava.zip #4842 22:06:59.868│├・SESSIONNAME=Console #4842 22:06:59.868│├・solomoncmd="O:\solomon\bcc32" win.cpp #4842 22:06:59.868│├・SystemDrive=C: #4842 22:06:59.868│├・SystemRoot=C:\Windows #4842 22:06:59.868│├・TEMP=C:\Users\wraith\AppData\Local\Temp #4842 22:06:59.868│├・TMP=C:\Users\wraith\AppData\Local\Temp #4842 22:06:59.868│├・UGII_3DCONNEXION_LIBRARY=%UGII_BASE_DIR%\ugalliance\vendor\startup\3DxNX.dll #4842 22:06:59.868│├・USERDOMAIN=cruiser #4842 22:06:59.868│├・USERNAME=wraith #4842 22:06:59.868│├・USERPROFILE=C:\Users\wraith #4842 22:06:59.868│├・windir=C:\Windows #4842 22:06:59.868│└△All Environment Information #4838 22:06:59.868├・return #88 ┌─────┴──────────────────────────────── │日付&時刻:2008-09-23(火) 22:06:59.868 └──────────────────────────────────────
101 = 101 301 = 7 * 43 201 = 3 * 67
20:04:19.182 540 0 bug.h 2462 ▽bugbeard session root 20:04:19.183 540 1 bug.h 2463 日付&時刻:2008-02-24(日) 20:04:19.183 20:04:19.183 540 1 bug.h 2839 ▽Compile Information 20:04:19.183 540 2 bug.h 2841 Compiler:Visual C++(1400) 20:04:19.183 540 2 bug.h 2843 Compile Date:Feb 24 2008 / Compile Time:20:02:37 20:04:19.183 540 2 bug.h 2839 △Compile Information 20:04:19.183 540 1 bug.h 2849 ▽Commandline Argument Information 20:04:19.183 540 2 bug.h 2850 argc(0x0012FAC8) = 4(0x00000004) 20:04:19.183 540 2 bug.h 2853 args[0]:tsv 20:04:19.183 540 2 bug.h 2853 args[1]:101 20:04:19.183 540 2 bug.h 2853 args[2]:201 20:04:19.183 540 2 bug.h 2853 args[3]:301 20:04:19.183 540 2 bug.h 2849 △Commandline Argument Information 20:04:19.183 540 1 tsv.cpp 176 ▽new 20:04:19.183 540 2 tsv.cpp 176 △new 20:04:19.183 540 1 tsv.cpp 179 ▽for 20:04:19.183 540 2 tsv.cpp 69 return 20:04:19.183 5772 0 bug.h 2462 ▽bugbeard session root 20:04:19.183 540 2 tsv.cpp 69 return 20:04:19.183 5772 1 bug.h 2463 日付&時刻:2008-02-24(日) 20:04:19.183 20:04:19.183 5772 1 tsv.cpp 104 ▽if (1 < current) == true; 20:04:19.183 540 2 tsv.cpp 69 return 20:04:19.183 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.183 540 2 tsv.cpp 179 △for 20:04:19.183 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.183 540 1 tsv.cpp 184 ▽for 20:04:19.183 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.183 868 0 bug.h 2462 ▽bugbeard session root 20:04:19.183 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.183 868 1 bug.h 2463 日付&時刻:2008-02-24(日) 20:04:19.183 20:04:19.183 5772 3 tsv.cpp 126 p(0x0133FC5C) = 3(0x00000003) 20:04:19.183 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.183 868 1 tsv.cpp 104 ▽if (1 < current) == true; 20:04:19.183 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.183 868 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.183 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.183 868 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.183 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.183 868 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.183 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.183 868 4 tsv.cpp 113 △if (pn) == false; 20:04:19.183 5772 3 tsv.cpp 126 p(0x0133FC5C) = 5(0x00000005) 20:04:19.183 868 3 tsv.cpp 126 p(0x0143FC5C) = 3(0x00000003) 20:04:19.183 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.183 868 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.183 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.183 868 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.183 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.183 868 2 tsv.cpp 111 ▽if (current %p) == false; 20:04:19.183 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.183 868 3 tsv.cpp 135 current(0x0143FD9C) = 67(0x00000043) 20:04:19.183 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.183 868 3 tsv.cpp 140 pn(0x0143FC54) = 1(0x00000001) 20:04:19.183 5772 3 tsv.cpp 126 p(0x0133FC5C) = 7(0x00000007) 20:04:19.183 868 3 tsv.cpp 111 △if (current %p) == false; 20:04:19.184 868 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 868 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 0 bug.h 2462 ▽bugbeard session root 20:04:19.184 868 3 tsv.cpp 113 ▽if (pn) == true; 20:04:19.184 4264 1 bug.h 2463 日付&時刻:2008-02-24(日) 20:04:19.184 20:04:19.184 868 4 tsv.cpp 116 ▽if (1 < pn) == false; 20:04:19.184 4264 1 tsv.cpp 104 ▽if (1 < current) == true; 20:04:19.184 868 5 tsv.cpp 116 △if (1 < pn) == false; 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 868 4 tsv.cpp 113 △if (pn) == true; 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.183 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 126 p(0x0153FC5C) = 3(0x00000003) 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 9(0x00000009) 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 126 p(0x0153FC5C) = 5(0x00000005) 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 11(0x0000000B) 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 126 p(0x0153FC5C) = 7(0x00000007) 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 13(0x0000000D) 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == false; 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 135 current(0x0153FD9C) = 43(0x0000002B) 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 3 tsv.cpp 140 pn(0x0153FC54) = 1(0x00000001) 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == false; 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 15(0x0000000F) 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == true; 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 4 tsv.cpp 116 ▽if (1 < pn) == false; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 5 tsv.cpp 116 △if (1 < pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == true; 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 126 p(0x0153FC5C) = 9(0x00000009) 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 17(0x00000011) 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 126 p(0x0153FC5C) = 11(0x0000000B) 20:04:19.184 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.184 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 5772 3 tsv.cpp 126 p(0x0133FC5C) = 19(0x00000013) 20:04:19.184 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.184 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.184 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.184 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 13(0x0000000D) 20:04:19.184 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 21(0x00000015) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 15(0x0000000F) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 23(0x00000017) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 17(0x00000011) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 25(0x00000019) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 19(0x00000013) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 27(0x0000001B) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 21(0x00000015) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 29(0x0000001D) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 23(0x00000017) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 31(0x0000001F) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 25(0x00000019) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 33(0x00000021) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 27(0x0000001B) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 35(0x00000023) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 126 p(0x0153FC5C) = 29(0x0000001D) 20:04:19.185 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.185 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.185 5772 3 tsv.cpp 126 p(0x0133FC5C) = 37(0x00000025) 20:04:19.185 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.185 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.185 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.185 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.184 868 3 tsv.cpp 126 p(0x0143FC5C) = 5(0x00000005) 20:04:19.185 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 126 p(0x0153FC5C) = 31(0x0000001F) 20:04:19.186 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 39(0x00000027) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 126 p(0x0153FC5C) = 33(0x00000021) 20:04:19.186 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 41(0x00000029) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 126 p(0x0153FC5C) = 35(0x00000023) 20:04:19.186 4264 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 4264 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 4264 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 4264 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 4264 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 43(0x0000002B) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 45(0x0000002D) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 47(0x0000002F) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 49(0x00000031) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 2 tsv.cpp 109 while (1 < current) == true; 20:04:19.186 5772 2 tsv.cpp 111 ▽if (current %p) == true; 20:04:19.186 5772 3 tsv.cpp 113 ▽if (pn) == false; 20:04:19.186 5772 4 tsv.cpp 113 △if (pn) == false; 20:04:19.186 5772 3 tsv.cpp 126 p(0x0133FC5C) = 51(0x00000033) 20:04:19.186 5772 3 tsv.cpp 111 △if (current %p) == true; 20:04:19.186 5772 2 tsv.cpp 109 whi
2008-02-24 "Coming soon..." などと謳いつつ5年近くほったらかしにしてましたが、ついに正式版のリリースです。 作者が言うのなんですが、このモジュールは非常に強力且つ凶悪です。ご利用いただければあなたの C++ プログラミングにおけるデバッグシーンに劇的な変化をもたらすであろうことお約束します。
2008-02-25 inline指定が抜けてて複数のコンパイル単位から利用するとリンク時にシンボルが衝突する問題を修正。
2008-03-10 以下の点を修正。
2008-04-01 以下の点を修正。
2008-06-05 以下の点を修正。
2008-09-23 以下の点を修正。
2008-11-01 以下の点を修正。