first commit
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user