first commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
169
Minecraft.Client/PS3/PS3Extras/HeapInspector/License.rtf
Normal file
169
Minecraft.Client/PS3/PS3Extras/HeapInspector/License.rtf
Normal file
@@ -0,0 +1,169 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1043\deflangfe1043\themelang1043\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
|
||||
{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
|
||||
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
|
||||
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f59\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f60\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
|
||||
{\f62\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f63\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f64\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f65\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
|
||||
{\f66\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f67\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
||||
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
|
||||
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
|
||||
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp
|
||||
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1043\langfe1043\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1043\langfenp1043 \snext0 \sqformat \spriority0 Normal;}
|
||||
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1043\langfe1043\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1043\langfenp1043
|
||||
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid11566407}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator van der beek}
|
||||
{\creatim\yr2012\mo1\dy3\hr12\min37}{\revtim\yr2012\mo1\dy3\hr12\min39}{\version2}{\edmins2}{\nofpages1}{\nofwords121}{\nofchars674}{\nofcharsws794}{\vern32771}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1417\gutter0\ltrsect
|
||||
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
|
||||
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot11566407 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\sectdefaultcl\sftnbj {\*\pnseclvl1
|
||||
\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
|
||||
\fs22\lang1043\langfe1043\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1043\langfenp1043 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407\charrsid11566407 \hich\af2\dbch\af31505\loch\f2
|
||||
Heap Inspector is Copyright 2010-201}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407 \hich\af2\dbch\af31505\loch\f2 2}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407\charrsid11566407
|
||||
\hich\af2\dbch\af31505\loch\f2 by Jelle van der Beek
|
||||
\par -------------------------------------------------------------
|
||||
\par
|
||||
\par \hich\af2\dbch\af31505\loch\f2 This software is provided free of charge. \hich\af2\dbch\af31505\loch\f2 If Heap Inspector helped in the production of your application, }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407
|
||||
\hich\af2\dbch\af31505\loch\f2 a mention of }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407\charrsid11566407 \hich\af2\dbch\af31505\loch\f2 Heap Inspector \hich\af2\dbch\af31505\loch\f2
|
||||
in the product or its accompanying documentation}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407 \hich\af2\dbch\af31505\loch\f2 is \hich\af2\dbch\af31505\loch\f2 highly \hich\af2\dbch\af31505\loch\f2
|
||||
appreciated, but not required}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\lang1033\langfe1043\langnp1033\insrsid11566407\charrsid11566407 \hich\af2\dbch\af31505\loch\f2 . The copyright notice above may serve as an examp\hich\af2\dbch\af31505\loch\f2 le.
|
||||
\par
|
||||
\par
|
||||
\par \hich\af2\dbch\af31505\loch\f2
|
||||
JELLE VAN DER BEEK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE. IN NO EVENT SHALL JELLE VAN DER BEEK BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHE
|
||||
\hich\af2\dbch\af31505\loch\f2 R IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
\par
|
||||
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
|
||||
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
|
||||
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
|
||||
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
|
||||
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
|
||||
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
|
||||
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
|
||||
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
|
||||
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
|
||||
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
|
||||
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
|
||||
29e245eb2b260a0238fd010000ffff0300504b0304140006000800000021002749e2e69e060000531b0000160000007468656d652f7468656d652f7468656d65
|
||||
312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b48d246b15bd4e37877bc3bcdecce6a669cd437d41e9190100571a012370e08a8d44a5c
|
||||
caaf09144191fa1778676677bd13af69d20651417d48bcb3cfbcdfef331fbe7aed5eccd0111192f2a4edd52fd73c44129f073409dbdead61ffd29a87a4c24980
|
||||
194f48db9b12e95ddb78ffbdab785d45242608e627721db7bd48a9747d6949fa308ce5659e9204de8db988b18247112e05021f83dc982d2dd76aab4b31a68987
|
||||
121c83d89be331f5c9252d127b1bb9f01e030d89927ac06762a045936cc60e4e14e7c28083c3ba86c8a9ec32818e306b7ba028e0c743724f798861a9e045dbab
|
||||
998fb7b4717509af6793985a30b734af6f3ed9bc6c4270b86c748a705428adf71bad2b5b857c03606a1ed7ebf5babd7a21cf00b0ef83abd696b2cc467faddec9
|
||||
659640f6ebbcec6ead596bb8f892fc95399b5b9d4ea7d9ca6cb1420dc87e6dcce1d76aab8dcd65076f4016df9cc3373a9bddeeaa8337208b5f9dc3f7afb4561b
|
||||
2ede80224693c339b44e68bf9f492f2063ceb62be16b005fab65f0190aaaa1282fad62cc13b5b0d8627c978b3e203492614513a4a62919631feab88be391a058
|
||||
6bc0eb0497ded8215fce0d696548fa82a6aaed7d9862e88999bc97cfbe7ff9ec093ab9fff4e4fe4f270f1e9cdcffd10a72666de3242ccf7af1ed677f3efa18fd
|
||||
f1e49b170fbfa8c6cb32fed71f3ef9e5e7cfab81d03f33739e7ff9f8b7a78f9f7ff5e9efdf3dac806f0a3c2ac387342612dd20c7e880c7e098898a6b391989f3
|
||||
cd18469896676c26a1c409d65a2ae4f754e4a06f4c31cbb2e3d8d1216e046f0be08f2ae0f5c95dc7e04124268a5668de896207b8c739eb705119851dadab14e6
|
||||
e12409ab958b49197780f15195ee2e4e9cfcf6262930675e968ee3dd883866ee33e0551c928428a4dff143422abcbb43a913d73dea0b2ef958a13b147530ad0c
|
||||
c9908e9c6a9a4ddaa631e4655ae533e4db89cdde6dd4e1accaeb2d72e422a12b30ab307e489813c6eb78a2705c25728863560ef82e5651959183a9f0cbb89e54
|
||||
90e990308e7a0191b26ace4d01fe9692be8381b22ad3bec7a6b18b148a1e56c9dcc59c97915bfcb01be138adc20e681295b11fc84328518cf6b9aa82ef71b743
|
||||
f433e401270bd37d9b1227ddaf66835b34744c9a15887e33113a97c0d50e03c734f93b3a6614f8d8d6c0c5d13110e0f3af1f5554d6db4ac49bb0265575c2f629
|
||||
fa5d843b4dba5d2e02faf673ee169e24fb04ca7c7ee17947b9ef28d7fbcf53eea27e3e2bd1ceb8156857ef1becaed8ec91e3c55be431656ca0a68cec4ab34b96
|
||||
b050047d18d413cd01911467a63482af19b13bb85060330709ae3ea22a1a4438851d76ddd3424299890e254ab984a39d19ae94adf1b04b57f660d8d447064b08
|
||||
12ab3d1ed8e1153d9c9f0c0a3166b909cdf93357b4a2059c55d9ca954c28b8fd3acaeadaa8336bab1bd30cd739da0a972189f3aec160114dd88120d8b7409457
|
||||
e188ae55c3c9043312e8b8dbc5374f8bc9c245a648463820598eb4dff339aa9b24e5b5622e03a0762a72a48f79af885a495b4b8b7d036d674952595d6381ba3c
|
||||
7b6f92a5bc826759d28d7baa1d59526e4e96a0e3b6d76a2e373de4e3b4ed8de1500b5fe314b22ef5a60fb310ee867c652f5b9c262dcac926ce36b3e9f259365b
|
||||
b9636e13d4e1a2c2c67dce6147452aa4dac232b21accabac0458a23559fb979b10d68b72c056fa6b58b1b206c5f0af59017174534bc663e2ab72b24b233a76f6
|
||||
31a3523e51440ca2e0188dd8441c6048bf2e55f027a012ee260c23e807b849d3d136af5c72ce9aae7c7f6570761cb334c219ddea16cd3bd9c24d1f173698a792
|
||||
79e05ba5edc6b9f3bb625afe825c2997f1ffcc15bd9ec055c14aa033e0c34daec048f76bdbe342451c58288da8df17b073304b26540bdcc6c26b282ab84f36ff
|
||||
0539d2ff6dcf5919a6ade1c4a70e68880485f5484582907da025537daf1056cfd62e2b9265824c4595cc95a9357b448e081b6a0e5cd56bbb87222875c326190d
|
||||
18dce9fa739fb30e1a857a9353ee3787432ac9b2826b72f2bee09d8f6d66d0e7f2b0d9d0e4f12f4cac5855ed7c333d5f7b4fb3fe6c9bd5c8bb029495968256d6
|
||||
f6af69c239975acb58731e2f3773e3208bf31ec360b1214ae1c207e93fb0fe51e13362ca582fa8437e00dc8ae0a7062d0cca06aafa92dd78204d907670041b27
|
||||
3b68f3ac45d9d0665b271dce7f28df85de53c1d6969d25dfe70c76b13973d539bd7891c1ce22ecc4da8e2d0c3564f6748bc2d0383fc998c4985fb5ca3f3cf1d1
|
||||
5d48f4165cf04f9892a698e057258161eb39307d00cd6f359aa91b7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000
|
||||
007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add4
|
||||
0384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b28
|
||||
4d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165d
|
||||
fe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c020000130000000000
|
||||
0000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000
|
||||
0000000000000000002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000
|
||||
0000140200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021002749e2e69e060000531b00001600
|
||||
000000000000000000000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01
|
||||
00002700000000000000000000000000a30900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d0100009e0a00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
|
||||
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
|
||||
4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000a0ec
|
||||
1d650ccacc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
||||
@@ -0,0 +1,30 @@
|
||||
// =================================================================================================================================
|
||||
// This sample demonstrates how to use the auto-hooking functionality of HeapInspector. On PlayStation 3, this uses link-time
|
||||
// malloc/realloc/free overloading. On PC it uses the mhook API, which will hook into the very low-level HeapAlloc, HeapRealloc
|
||||
// and HeapFree functions. This will cause any allocations in your application to be caught.
|
||||
//
|
||||
// NOTE: the platform specific hooking calls can be found in the Main<platform>.cpp.
|
||||
// =================================================================================================================================
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
void Wait(int a_MilliSeconds);
|
||||
|
||||
void RunHeapInspectorServer()
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
void* mem1;
|
||||
void* memB;
|
||||
|
||||
mem1 = malloc(16);
|
||||
memB = malloc(1024);
|
||||
|
||||
Wait(100);
|
||||
|
||||
free(mem1);
|
||||
free(memB);
|
||||
|
||||
Wait(100);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="HookSample"
|
||||
ProjectGUID="{79AEA684-C1E1-4E26-A335-E98B4088FD5C}"
|
||||
RootNamespace="BasicServerSample"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="PS3 Debug|Win32"
|
||||
OutputDirectory="Debug_VS2008"
|
||||
IntermediateDirectory="Debug_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-g -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;_DEBUG;__GCC__;__CELL_ASSERT__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti -Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Debug\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="PS3 Release|Win32"
|
||||
OutputDirectory="Release_VS2008"
|
||||
IntermediateDirectory="Release_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-Wall -fno-exceptions -fno-rtti -O2"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;NDEBUG;__GCC__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti -Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Release\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="PS3"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Wait.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\HookSample.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|PS3">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|PS3">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\HookSample.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="Wait.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F749F5D0-B972-4E99-8B4B-2B865D4A8BC9}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;__CELL_ASSERT__;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"$(SCE_PS3_ROOT)\target\ppu\lib\libm.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a";"..\..\..\Server\PS3\Debug\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>-Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<OptimizationLevel>Level2</OptimizationLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"..\..\..\Server\PS3\Release\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>-Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,18 @@
|
||||
#include "../../../Server/HeapInspectorServer.h"
|
||||
#include "../../../Server/PS3/HeapHooks.hpp"
|
||||
|
||||
void RunHeapInspectorServer();
|
||||
|
||||
extern "C" void* __real__malloc_init();
|
||||
extern "C" void* __wrap__malloc_init()
|
||||
{
|
||||
void* result = __real__malloc_init();
|
||||
Initialise(HeapInspectorServer::GetDefaultHeapInfo(), 3000, HeapInspectorServer::WaitForConnection_Enabled);
|
||||
return result;
|
||||
}
|
||||
|
||||
int main(int /*a_ArgC*/, const char* /*a_ArgV[]*/)
|
||||
{
|
||||
RunHeapInspectorServer();
|
||||
HeapInspectorServer::Shutdown();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <sys/timer.h>
|
||||
|
||||
void Wait(int a_Milliseconds)
|
||||
{
|
||||
sys_timer_usleep(a_Milliseconds * 1000);
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
// =================================================================================================================================
|
||||
// This sample demonstrates how to use the Server API to send allocs, reallocs and frees directly to the client. It also shows
|
||||
// how to configure multiple heaps.
|
||||
// =================================================================================================================================
|
||||
|
||||
#include "../../Server/HeapInspectorServer.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
using namespace HeapInspectorServer;
|
||||
|
||||
void Wait(int a_MilliSeconds);
|
||||
|
||||
std::vector<HeapInfo> GetHeapInfo()
|
||||
{
|
||||
std::vector<HeapInfo> result;
|
||||
HeapInfo heapInfo;
|
||||
heapInfo.m_Description = "Heap1";
|
||||
heapInfo.m_Range.m_Min = 0;
|
||||
heapInfo.m_Range.m_Max = 0x80000000 - 1;
|
||||
result.push_back(heapInfo);
|
||||
|
||||
heapInfo.m_Description = "Heap2";
|
||||
heapInfo.m_Range.m_Min = 0;
|
||||
heapInfo.m_Range.m_Max = 0x80000000 - 1;
|
||||
result.push_back(heapInfo);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void* Alloc(uint32 a_Size, int a_Heap)
|
||||
{
|
||||
Mutation mutation = BeginAlloc();
|
||||
void* mem = malloc(a_Size);
|
||||
EndAlloc(mutation, a_Heap, mem, a_Size, a_Size);
|
||||
return mem;
|
||||
}
|
||||
|
||||
void Free(void* a_Block, int a_Heap)
|
||||
{
|
||||
Mutation mutation = BeginFree();
|
||||
free(a_Block);
|
||||
EndFree(mutation, a_Heap, a_Block);
|
||||
}
|
||||
|
||||
void* ReAlloc(void* a_OldBlock, uint32 a_Size, int a_Heap)
|
||||
{
|
||||
Mutation mutation = BeginReAlloc();
|
||||
void* mem = realloc(a_OldBlock, a_Size);
|
||||
EndReAlloc(mutation, a_Heap, a_OldBlock, mem, a_Size, a_Size);
|
||||
return mem;
|
||||
}
|
||||
|
||||
void RunHeapInspectorServer()
|
||||
{
|
||||
Initialise(GetHeapInfo(), 3000, WaitForConnection_Enabled);
|
||||
|
||||
while (1)
|
||||
{
|
||||
void* mem1;
|
||||
void* memB;
|
||||
|
||||
mem1 = Alloc(16, 0);
|
||||
memB = Alloc(1024, 1);
|
||||
|
||||
Wait(100);
|
||||
|
||||
void* mem2 = ReAlloc(mem1, 32, 0);
|
||||
|
||||
Wait(100);
|
||||
|
||||
Free(mem2, 0);
|
||||
Free(memB, 1);
|
||||
|
||||
Wait(100);
|
||||
}
|
||||
|
||||
Shutdown();
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
void RunHeapInspectorServer();
|
||||
|
||||
int main(int /*a_ArgC*/, const char* /*a_ArgV[]*/)
|
||||
{
|
||||
RunHeapInspectorServer();
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="ManualSample"
|
||||
ProjectGUID="{EE51F556-4CCE-4D4C-96C3-B271CC035C6E}"
|
||||
RootNamespace="BasicServerSample"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="PS3 Debug|Win32"
|
||||
OutputDirectory="Debug_VS2008"
|
||||
IntermediateDirectory="Debug_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-g -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;_DEBUG;__GCC__;__CELL_ASSERT__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Debug\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="PS3 Release|Win32"
|
||||
OutputDirectory="Release_VS2008"
|
||||
IntermediateDirectory="Release_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-O2 -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;NDEBUG;__GCC__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Release\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="PS3"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Wait.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\ManualSample.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|PS3">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|PS3">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\ManualSample.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="Wait.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B6B851C9-DC76-4A5B-9AFE-6CF944BFB502}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;__CELL_ASSERT__;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"$(SCE_PS3_ROOT)\target\ppu\lib\libm.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a";"..\..\..\Server\PS3\Debug\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<OptimizationLevel>Level2</OptimizationLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"..\..\..\Server\PS3\Release\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <sys/timer.h>
|
||||
|
||||
void Wait(int a_Milliseconds)
|
||||
{
|
||||
sys_timer_usleep(a_Milliseconds * 1000);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef _MULTITHREADEDHOOKSAMPLE_ITHREAD_H_
|
||||
#define _MULTITHREADEDHOOKSAMPLE_ITHREAD_H_
|
||||
|
||||
typedef void(*ThreadFunction)();
|
||||
|
||||
class IThread
|
||||
{
|
||||
public:
|
||||
virtual ~IThread() {}
|
||||
virtual void Fork(ThreadFunction a_Function) = 0;
|
||||
virtual void Join() = 0;
|
||||
};
|
||||
|
||||
IThread* CreateThread();
|
||||
void DestroyThread(IThread* a_Thread);
|
||||
|
||||
#endif // _MULTITHREADEDHOOKSAMPLE_ITHREAD_H_
|
||||
@@ -0,0 +1,80 @@
|
||||
// =================================================================================================================================
|
||||
// This sample is more of a show-(and test) case for HeapInspector's. It demonstrates:
|
||||
// 1) That HeapInspector is multithread safe.
|
||||
// 2) HeapInspector's ability to deal with allocations prior to Initialise (although those allocations will not be tracked).
|
||||
// 3) HeapInspector's ability to deal with API calls during static initialisation phase.
|
||||
//
|
||||
// In this sample, multiple threads are started that perform allocations for a set period of time. The
|
||||
// application will wait for those threads to finish. After the time is passed and the application calls Shutdown,
|
||||
// the client will disconnect.
|
||||
//
|
||||
// To switch between launching the threads during the static initalisation phase and launching the treads
|
||||
// in main, flip the INIT_IN_STATIC_PHASE define.
|
||||
//
|
||||
// =================================================================================================================================
|
||||
|
||||
#include "IThread.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void Wait(int a_MilliSeconds);
|
||||
|
||||
#define INIT_IN_STATIC_PHASE 0
|
||||
const int g_NumThreads = 4;
|
||||
|
||||
class MultiThreadedAllocator
|
||||
{
|
||||
public:
|
||||
static void WorkerThread()
|
||||
{
|
||||
for (int i = 0; i != 1000; ++i)
|
||||
{
|
||||
void* mem1 = malloc(10);
|
||||
Wait(10);
|
||||
free(mem1);
|
||||
Wait(10);
|
||||
}
|
||||
}
|
||||
|
||||
MultiThreadedAllocator()
|
||||
{
|
||||
for (int i = 0; i != g_NumThreads; ++i)
|
||||
{
|
||||
m_Threads[i] = CreateThread();
|
||||
m_Threads[i]->Fork(WorkerThread);
|
||||
}
|
||||
}
|
||||
|
||||
~MultiThreadedAllocator()
|
||||
{
|
||||
WaitForThreads();
|
||||
for (int i = 0; i != g_NumThreads; ++i)
|
||||
{
|
||||
DestroyThread(m_Threads[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void WaitForThreads()
|
||||
{
|
||||
for (int i = 0; i != g_NumThreads; ++i)
|
||||
{
|
||||
m_Threads[i]->Join();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
IThread* m_Threads[g_NumThreads];
|
||||
};
|
||||
|
||||
#if INIT_IN_STATIC_PHASE
|
||||
static MultiThreadedAllocator* g_Allocator = new MultiThreadedAllocator();
|
||||
#endif
|
||||
|
||||
void RunHeapInspectorServer()
|
||||
{
|
||||
#if !INIT_IN_STATIC_PHASE
|
||||
MultiThreadedAllocator* g_Allocator = new MultiThreadedAllocator();
|
||||
#endif
|
||||
|
||||
delete g_Allocator;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
#include "../../../Server/HeapInspectorServer.h"
|
||||
#include "../../../Server/PS3/HeapHooks.hpp"
|
||||
|
||||
void RunHeapInspectorServer();
|
||||
|
||||
extern "C" void* __real__malloc_init();
|
||||
extern "C" void* __wrap__malloc_init()
|
||||
{
|
||||
void* result = __real__malloc_init();
|
||||
Initialise(HeapInspectorServer::GetDefaultHeapInfo(), 3000, HeapInspectorServer::WaitForConnection_Enabled);
|
||||
return result;
|
||||
}
|
||||
|
||||
int main(int /*a_ArgC*/, const char* /*a_ArgV[]*/)
|
||||
{
|
||||
RunHeapInspectorServer();
|
||||
HeapInspectorServer::Shutdown();
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="MultiThreadedHookSample"
|
||||
ProjectGUID="{37C97160-EB4F-46FD-9CA7-0E0789EFE398}"
|
||||
RootNamespace="BasicServerSample"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="PS3 Debug|Win32"
|
||||
OutputDirectory="Debug_VS2008"
|
||||
IntermediateDirectory="Debug_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-g -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;_DEBUG;__GCC__;__CELL_ASSERT__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti -Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Debug\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="PS3 Release|Win32"
|
||||
OutputDirectory="Release_VS2008"
|
||||
IntermediateDirectory="Release_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-Wall -fno-exceptions -fno-rtti -O2"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;NDEBUG;__GCC__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti -Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Release\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="PS3"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ThreadPS3.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Wait.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\IThread.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\MultiThreadedHookSample.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|PS3">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|PS3">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\IThread.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\MultiThreadedHookSample.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="ThreadPS3.cpp" />
|
||||
<ClCompile Include="Wait.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{E9BC25AD-CFFD-43B6-ABEC-CA516CADD296}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;__CELL_ASSERT__;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"$(SCE_PS3_ROOT)\target\ppu\lib\libm.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a";"..\..\..\Server\PS3\Debug\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>-Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<OptimizationLevel>Level2</OptimizationLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"..\..\..\Server\PS3\Release\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions>-Wl,--wrap=malloc,--wrap=free,--wrap=calloc,--wrap=memalign,--wrap=realloc,--wrap=reallocalign,--wrap=_malloc_init %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,41 @@
|
||||
#include <pthread.h>
|
||||
#include "../IThread.h"
|
||||
|
||||
void* InternalThread(void* a_UserData)
|
||||
{
|
||||
ThreadFunction function = (ThreadFunction)a_UserData;
|
||||
function();
|
||||
|
||||
pthread_exit(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
class ThreadPS3 : public IThread
|
||||
{
|
||||
public:
|
||||
virtual void Fork(ThreadFunction a_Function)
|
||||
{
|
||||
pthread_create(&m_Thread, 0, InternalThread, (void*)a_Function);
|
||||
}
|
||||
|
||||
virtual void Join()
|
||||
{
|
||||
void* threadResult;
|
||||
pthread_join(m_Thread, &threadResult);
|
||||
}
|
||||
|
||||
private:
|
||||
pthread_t m_Thread;
|
||||
};
|
||||
|
||||
|
||||
IThread* CreateThread()
|
||||
{
|
||||
return new ThreadPS3();
|
||||
}
|
||||
|
||||
void DestroyThread(IThread* a_Thread)
|
||||
{
|
||||
delete a_Thread;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <sys/timer.h>
|
||||
|
||||
void Wait(int a_Milliseconds)
|
||||
{
|
||||
sys_timer_usleep(a_Milliseconds * 1000);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
void RunHeapInspectorServer();
|
||||
|
||||
int main(int /*a_ArgC*/, const char* /*a_ArgV[]*/)
|
||||
{
|
||||
RunHeapInspectorServer();
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="ReplaceNewDeleteSample"
|
||||
ProjectGUID="{EFE31408-0463-46AB-8695-CD342951EC17}"
|
||||
RootNamespace="BasicServerSample"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="PS3 Debug|Win32"
|
||||
OutputDirectory="Debug_VS2008"
|
||||
IntermediateDirectory="Debug_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-g -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;_DEBUG;__GCC__;__CELL_ASSERT__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Debug\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="PS3 Release|Win32"
|
||||
OutputDirectory="Release_VS2008"
|
||||
IntermediateDirectory="Release_VS2008"
|
||||
ConfigurationType="1"
|
||||
DeleteExtensionsOnClean="*.obj;*.d;*.map;*.lst;*.pch;$(TargetPath);$(TargetDir)$(TargetName).self"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="-O2 -Wall -fno-exceptions -fno-rtti"
|
||||
AdditionalIncludeDirectories=""$(SN_PS3_PATH)\ppu\include\sn";"$(SCE_PS3_ROOT)\target\ppu\include";"$(SCE_PS3_ROOT)\target\common\include""
|
||||
PreprocessorDefinitions="SN_TARGET_PS3;NDEBUG;__GCC__;HEAPINSPECTOR_PS3=1"
|
||||
ProgramDataBaseFileName=""
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="-fno-exceptions -fno-rtti"
|
||||
AdditionalDependencies=""$(SN_PS3_PATH)\ppu\lib\sn\libsn.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libm.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a" "..\..\..\Server\PS3\Release\libHeapInspectorServer.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a" "$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a""
|
||||
OutputFile="$(OutDir)/$(ProjectName).ppu.elf"
|
||||
AdditionalLibraryDirectories=""
|
||||
ProgramDatabaseFile=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
Description="Fake Signing ELF "$(TargetDir)$(TargetName).self""
|
||||
CommandLine="$(SCE_PS3_ROOT)\host-win32\bin\make_fself "$(TargetPath)" "$(TargetDir)$(TargetName).self""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="PS3"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Main.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Wait.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\ReplaceNewDeleteSample.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,70 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|PS3">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|PS3">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>PS3</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\ReplaceNewDeleteSample.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="Wait.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{B0416FCD-A32B-4F91-93D1-4EDFF99F740B}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>GCC</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<OutDir>$(ProjectDir)$(Platform)_$(Configuration)_VS2010\</OutDir>
|
||||
<IntDir>$(Platform)_$(Configuration)_VS2010\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;__CELL_ASSERT__;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"$(SCE_PS3_ROOT)\target\ppu\lib\libm.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libio_stub.a";"..\..\..\Server\PS3\Debug\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);;HEAPINSPECTOR_PS3=1</PreprocessorDefinitions>
|
||||
<OptimizationLevel>Level2</OptimizationLevel>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>"..\..\..\Server\PS3\Release\libHeapInspectorServer.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libpthread.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libnet_stub.a";"$(SCE_PS3_ROOT)\target\ppu\lib\libsysmodule_stub.a";%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Condition="'$(ConfigurationType)' == 'Makefile' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets')" Project="$(VCTargetsPath)\Platforms\$(Platform)\SCE.Makefile.$(Platform).targets" />
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <sys/timer.h>
|
||||
|
||||
void Wait(int a_Milliseconds)
|
||||
{
|
||||
sys_timer_usleep(a_Milliseconds * 1000);
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
// =================================================================================================================================
|
||||
// This sample demonstrates how to replace operator new and delete and how to send these allocations to the HeapInspector client.
|
||||
// Please note that the Hook sample captures allocations on a lower level and will also trace all new/delete allocations.
|
||||
//
|
||||
// WARNING: Make sure that you replace both the array and non-array operators. If there are any pairing issues in your code
|
||||
// (allocating with new[] and deleting with delete), HeapInspector will miss those deallocations and that will be problematic
|
||||
// for a subsequent allocation on that address: it will then warn that it found a double allocation. That will actually be a
|
||||
// sign that the operators aren't properly matched.
|
||||
// =================================================================================================================================
|
||||
|
||||
#include "../../Server/HeapInspectorServer.h"
|
||||
#include <stdlib.h>
|
||||
#include <new>
|
||||
|
||||
using namespace HeapInspectorServer;
|
||||
|
||||
void Wait(int a_MilliSeconds);
|
||||
|
||||
void* operator new(size_t a_Size)
|
||||
{
|
||||
Mutation mutation = BeginAlloc();
|
||||
void* mem = malloc(a_Size);
|
||||
EndAlloc(mutation, 0, mem, a_Size, a_Size);
|
||||
return mem;
|
||||
}
|
||||
|
||||
void operator delete(void* a_Pointer)
|
||||
{
|
||||
Mutation mutation = BeginFree();
|
||||
free(a_Pointer);
|
||||
EndFree(mutation, 0, a_Pointer);
|
||||
}
|
||||
|
||||
void* operator new[](size_t a_Size)
|
||||
{
|
||||
Mutation mutation = BeginAlloc();
|
||||
void* mem = malloc(a_Size);
|
||||
EndAlloc(mutation, 0, mem, a_Size, a_Size);
|
||||
return mem;
|
||||
}
|
||||
|
||||
void operator delete[](void* a_Pointer)
|
||||
{
|
||||
Mutation mutation = BeginFree();
|
||||
free(a_Pointer);
|
||||
EndFree(mutation, 0, a_Pointer);
|
||||
}
|
||||
|
||||
void RunHeapInspectorServer()
|
||||
{
|
||||
Initialise(GetDefaultHeapInfo(), 3000, WaitForConnection_Enabled);
|
||||
|
||||
while (1)
|
||||
{
|
||||
int* xArray = new int[100];
|
||||
float* y = new float;
|
||||
|
||||
Wait(100);
|
||||
|
||||
delete[] xArray;
|
||||
delete y;
|
||||
|
||||
Wait(100);
|
||||
}
|
||||
|
||||
Shutdown();
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef _HEAPINSPECTORSERVER_HEAPINFO_H_
|
||||
#define _HEAPINSPECTORSERVER_HEAPINFO_H_
|
||||
|
||||
#include "HeapInspectorServerTypes.h"
|
||||
#include <string>
|
||||
|
||||
BEGIN_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
struct Range
|
||||
{
|
||||
uint32 m_Min;
|
||||
uint32 m_Max;
|
||||
};
|
||||
|
||||
struct HeapInfo
|
||||
{
|
||||
std::string m_Description;
|
||||
Range m_Range;
|
||||
};
|
||||
|
||||
END_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
#endif // _HEAPINSPECTORSERVER_HEAPINFO_H_
|
||||
@@ -0,0 +1,33 @@
|
||||
#ifndef _HEAPINSPECTORSERVER_PLATFORMINTERFACES_HEAPINSPECTORSERVER_H_
|
||||
#define _HEAPINSPECTORSERVER_PLATFORMINTERFACES_HEAPINSPECTORSERVER_H_
|
||||
|
||||
#include "HeapInfo.h"
|
||||
#include <vector>
|
||||
|
||||
BEGIN_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
enum EWaitForConnection
|
||||
{
|
||||
WaitForConnection_Disabled,
|
||||
WaitForConnection_Enabled
|
||||
};
|
||||
|
||||
std::vector<HeapInfo> GetDefaultHeapInfo();
|
||||
bool Initialise(const std::vector<HeapInfo>& a_HeapInfo, int a_Port, EWaitForConnection a_WaitForConnection);
|
||||
bool IsInitialised();
|
||||
void Shutdown();
|
||||
|
||||
typedef int Mutation;
|
||||
|
||||
Mutation BeginAlloc();
|
||||
void EndAlloc(Mutation a_Mutation, uint16 a_HeapID, void* a_Address, uint32 a_SizeRequested, uint32 a_SizeReceived);
|
||||
|
||||
Mutation BeginReAlloc();
|
||||
void EndReAlloc(Mutation a_Mutation, uint16 a_HeapID, void* a_OldAddress, void* a_NewAddress, uint32 a_SizeRequested, uint32 a_SizeReceived);
|
||||
|
||||
Mutation BeginFree();
|
||||
void EndFree(Mutation a_Mutation, uint16 a_HeapID, void* a_Address);
|
||||
|
||||
END_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
#endif // _HEAPINSPECTORSERVER_PLATFORMINTERFACES_HEAPINSPECTORSERVER_H_
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef _HEAPINSPECTORSERVER_TYPES_H_
|
||||
#define _HEAPINSPECTORSERVER_TYPES_H_
|
||||
|
||||
#define BEGIN_NAMESPACE(x) namespace x {
|
||||
#define END_NAMESPACE(x) }
|
||||
#define BEGIN_UNNAMED_NAMESPACE() namespace {
|
||||
#define END_UNNAMED_NAMESPACE() }
|
||||
|
||||
BEGIN_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
typedef unsigned char uint8;
|
||||
typedef unsigned short uint16;
|
||||
typedef unsigned int uint32;
|
||||
|
||||
#if HEAPINSPECTOR_PS3
|
||||
typedef unsigned long long uint64;
|
||||
typedef long long int64;
|
||||
#else
|
||||
typedef unsigned __int64 uint64;
|
||||
typedef __int64 int64;
|
||||
#endif
|
||||
|
||||
typedef char int8;
|
||||
typedef short int16;
|
||||
typedef int int32;
|
||||
|
||||
typedef char char8;
|
||||
typedef wchar_t char16;
|
||||
|
||||
END_NAMESPACE(HeapInspectorServer)
|
||||
|
||||
#endif //_HEAPINSPECTORSERVER_TYPES_H_
|
||||
@@ -0,0 +1,63 @@
|
||||
#ifndef _HEAPINSPECTORSERVER_PS3_HEAPHOOKS_HPP_
|
||||
#define _HEAPINSPECTORSERVER_PS3_HEAPHOOKS_HPP_
|
||||
|
||||
#include <stdlib.h>
|
||||
extern "C" void* __real_memalign(size_t a_Boundary, size_t a_Size);
|
||||
extern "C" void* __wrap_memalign(size_t a_Boundary, size_t a_Size)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginAlloc();
|
||||
void* result = __real_memalign(a_Boundary, a_Size);
|
||||
size_t usableSize = malloc_usable_size(result);
|
||||
HeapInspectorServer::EndAlloc(mutation, 0, result, a_Size, usableSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
extern "C" void* __real_calloc(size_t a_NumElements, size_t a_SizePerElement);
|
||||
extern "C" void* __wrap_calloc(size_t a_NumElements, size_t a_SizePerElement)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginAlloc();
|
||||
void* result = __real_calloc(a_NumElements, a_SizePerElement);
|
||||
size_t usableSize = malloc_usable_size(result);
|
||||
HeapInspectorServer::EndAlloc(mutation, 0, result, a_NumElements * a_SizePerElement, usableSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
extern "C" void* __real_malloc(size_t a_Size);
|
||||
extern "C" void* __wrap_malloc(size_t a_Size)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginAlloc();
|
||||
void* result = __real_malloc(a_Size);
|
||||
size_t usableSize = malloc_usable_size(result);
|
||||
HeapInspectorServer::EndAlloc(mutation, 0, result, a_Size, usableSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
extern "C" void __real_free(void* a_Address);
|
||||
extern "C" void __wrap_free(void* a_Address)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginFree();
|
||||
__real_free(a_Address);
|
||||
HeapInspectorServer::EndFree(mutation, 0, a_Address);
|
||||
}
|
||||
|
||||
extern "C" void *__real_realloc(void *a_Address, size_t a_Size);
|
||||
extern "C" void *__wrap_realloc(void *a_Address, size_t a_Size)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginReAlloc();
|
||||
void* result = __real_realloc(a_Address, a_Size);
|
||||
size_t usableSize = malloc_usable_size(result);
|
||||
HeapInspectorServer::EndReAlloc(mutation, 0, a_Address, result, a_Size, usableSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
extern "C" void* __real_reallocalign(void *a_Address, size_t a_Size, size_t a_Boundary);
|
||||
extern "C" void* __wrap_reallocalign(void *a_Address, size_t a_Size, size_t a_Boundary)
|
||||
{
|
||||
HeapInspectorServer::Mutation mutation = HeapInspectorServer::BeginReAlloc();
|
||||
void* result = __real_reallocalign(a_Address, a_Size, a_Boundary);
|
||||
size_t usableSize = malloc_usable_size(result);
|
||||
HeapInspectorServer::EndReAlloc(mutation, 0, a_Address, result, a_Size, usableSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif //_HEAPINSPECTORSERVER_PS3_HEAPHOOKS_HPP_
|
||||
Reference in New Issue
Block a user