mirror of
https://github.com/HyperDbg/HyperDbg
synced 2026-08-15 06:29:09 -04:00
fix runtime error for deallocating memory from separate DLLs
This commit is contained in:
parent
a336ad80e0
commit
35ca575bfd
8 changed files with 92 additions and 33 deletions
|
|
@ -54,6 +54,9 @@ HardwareScriptInterpreterConvertSymbolToHwdbgShortSymbolBuffer(
|
|||
HWDBG_SHORT_SYMBOL ** NewShortSymbolBuffer,
|
||||
size_t * NewBufferSize);
|
||||
|
||||
IMPORT_EXPORT_HYPERDBG_SCRIPT_ENGINE VOID
|
||||
HardwareScriptInterpreterFreeHwdbgShortSymbolBuffer(HWDBG_SHORT_SYMBOL * NewShortSymbolBuffer);
|
||||
|
||||
IMPORT_EXPORT_HYPERDBG_SCRIPT_ENGINE PVOID
|
||||
ScriptEngineParse(char * str);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ CommandHwClk(vector<CommandToken> CommandTokens, string Command)
|
|||
{
|
||||
TCHAR TestFilePath[MAX_PATH] = {0};
|
||||
const SIZE_T BufferSize = 256; // Adjust based on the number of memory entries of the file
|
||||
UINT32 PortNum = 0;
|
||||
UINT32 MemoryBuffer[BufferSize];
|
||||
|
||||
if (SetupPathForFileName(HWDBG_TEST_READ_INSTANCE_INFO_PATH, TestFilePath, sizeof(TestFilePath), TRUE) &&
|
||||
|
|
@ -90,34 +89,7 @@ CommandHwClk(vector<CommandToken> CommandTokens, string Command)
|
|||
{
|
||||
ShowMessages("instance info interpreted successfully\n");
|
||||
|
||||
ShowMessages("Debuggee Version: 0x%x\n", g_HwdbgInstanceInfo.version);
|
||||
ShowMessages("Debuggee Maximum Number Of Stages: 0x%x\n", g_HwdbgInstanceInfo.maximumNumberOfStages);
|
||||
ShowMessages("Debuggee Script Variable Length: 0x%x\n", g_HwdbgInstanceInfo.scriptVariableLength);
|
||||
ShowMessages("Debuggee Number of Supported Local (and global) Variables: 0x%x\n", g_HwdbgInstanceInfo.numberOfSupportedLocalAndGlobalVariables);
|
||||
ShowMessages("Debuggee Number of Supported Temporary Variables: 0x%x\n", g_HwdbgInstanceInfo.numberOfSupportedTemporaryVariables);
|
||||
ShowMessages("Debuggee Maximum Number Of Supported GET Script Operators: 0x%x\n", g_HwdbgInstanceInfo.maximumNumberOfSupportedGetScriptOperators);
|
||||
ShowMessages("Debuggee Maximum Number Of Supported SET Script Operators: 0x%x\n", g_HwdbgInstanceInfo.maximumNumberOfSupportedSetScriptOperators);
|
||||
ShowMessages("Debuggee Shared Memory Size: 0x%x\n", g_HwdbgInstanceInfo.sharedMemorySize);
|
||||
ShowMessages("Debuggee Debugger Area Offset: 0x%x\n", g_HwdbgInstanceInfo.debuggerAreaOffset);
|
||||
ShowMessages("Debuggee Debuggee Area Offset: 0x%x\n", g_HwdbgInstanceInfo.debuggeeAreaOffset);
|
||||
ShowMessages("Debuggee Script Capabilities Mask: 0x%llx\n", g_HwdbgInstanceInfo.scriptCapabilities);
|
||||
|
||||
//
|
||||
// Show script capabilities
|
||||
//
|
||||
HardwareScriptInterpreterShowScriptCapabilities(&g_HwdbgInstanceInfo);
|
||||
|
||||
ShowMessages("Debuggee Number Of Pins: 0x%x\n", g_HwdbgInstanceInfo.numberOfPins);
|
||||
ShowMessages("Debuggee Number Of Ports: 0x%x\n", g_HwdbgInstanceInfo.numberOfPorts);
|
||||
|
||||
ShowMessages("Debuggee BRAM Address Width: 0x%x\n", g_HwdbgInstanceInfo.bramAddrWidth);
|
||||
ShowMessages("Debuggee BRAM Data Width: 0x%x (%d bit)\n", g_HwdbgInstanceInfo.bramDataWidth, g_HwdbgInstanceInfo.bramDataWidth);
|
||||
|
||||
for (auto item : g_HwdbgPortConfiguration)
|
||||
{
|
||||
ShowMessages("Port number %d ($hw_port%d): 0x%x\n", PortNum, PortNum, item);
|
||||
PortNum++;
|
||||
}
|
||||
HwdbgShowIntanceInfo(&g_HwdbgInstanceInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -278,12 +250,16 @@ CommandHwClk(vector<CommandToken> CommandTokens, string Command)
|
|||
}
|
||||
|
||||
//
|
||||
// Free the allocated memory
|
||||
// Free the allocated memory for the short symbol buffer
|
||||
//
|
||||
if (NewScriptBuffer != NULL)
|
||||
{
|
||||
free(NewScriptBuffer);
|
||||
HardwareScriptInterpreterFreeHwdbgShortSymbolBuffer(NewScriptBuffer);
|
||||
}
|
||||
|
||||
//
|
||||
// Free the allocated memory
|
||||
//
|
||||
FreeEventsAndActionsMemory(Event, ActionBreakToDebugger, ActionCustomCode, ActionScript);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -585,3 +585,45 @@ HwdbgInterpreterSendScriptPacket(HWDBG_INSTANCE_INFORMATION * InstanceInfo,
|
|||
|
||||
return Result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Show instance info details
|
||||
*
|
||||
* @param InstanceInfo
|
||||
*
|
||||
* @return VOID
|
||||
*/
|
||||
VOID
|
||||
HwdbgShowIntanceInfo(HWDBG_INSTANCE_INFORMATION * InstanceInfo)
|
||||
{
|
||||
UINT32 PortNum = 0;
|
||||
|
||||
ShowMessages("Debuggee Version: 0x%x\n", InstanceInfo->version);
|
||||
ShowMessages("Debuggee Maximum Number Of Stages: 0x%x\n", InstanceInfo->maximumNumberOfStages);
|
||||
ShowMessages("Debuggee Script Variable Length: 0x%x\n", InstanceInfo->scriptVariableLength);
|
||||
ShowMessages("Debuggee Number of Supported Local (and global) Variables: 0x%x\n", InstanceInfo->numberOfSupportedLocalAndGlobalVariables);
|
||||
ShowMessages("Debuggee Number of Supported Temporary Variables: 0x%x\n", InstanceInfo->numberOfSupportedTemporaryVariables);
|
||||
ShowMessages("Debuggee Maximum Number Of Supported GET Script Operators: 0x%x\n", InstanceInfo->maximumNumberOfSupportedGetScriptOperators);
|
||||
ShowMessages("Debuggee Maximum Number Of Supported SET Script Operators: 0x%x\n", InstanceInfo->maximumNumberOfSupportedSetScriptOperators);
|
||||
ShowMessages("Debuggee Shared Memory Size: 0x%x\n", InstanceInfo->sharedMemorySize);
|
||||
ShowMessages("Debuggee Debugger Area Offset: 0x%x\n", InstanceInfo->debuggerAreaOffset);
|
||||
ShowMessages("Debuggee Debuggee Area Offset: 0x%x\n", InstanceInfo->debuggeeAreaOffset);
|
||||
ShowMessages("Debuggee Script Capabilities Mask: 0x%llx\n", InstanceInfo->scriptCapabilities);
|
||||
|
||||
//
|
||||
// Show script capabilities
|
||||
//
|
||||
HardwareScriptInterpreterShowScriptCapabilities(&g_HwdbgInstanceInfo);
|
||||
|
||||
ShowMessages("Debuggee Number Of Pins: 0x%x\n", InstanceInfo->numberOfPins);
|
||||
ShowMessages("Debuggee Number Of Ports: 0x%x\n", InstanceInfo->numberOfPorts);
|
||||
|
||||
ShowMessages("Debuggee BRAM Address Width: 0x%x\n", InstanceInfo->bramAddrWidth);
|
||||
ShowMessages("Debuggee BRAM Data Width: 0x%x (%d bit)\n", InstanceInfo->bramDataWidth, InstanceInfo->bramDataWidth);
|
||||
|
||||
for (auto item : g_HwdbgPortConfiguration)
|
||||
{
|
||||
ShowMessages("Port number %d ($hw_port%d): 0x%x\n", PortNum, PortNum, item);
|
||||
PortNum++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,3 +72,6 @@ HwdbgInterpreterSendScriptPacket(HWDBG_INSTANCE_INFORMATION * InstanceInfo,
|
|||
UINT32 NumberOfSymbols,
|
||||
HWDBG_SHORT_SYMBOL * Buffer,
|
||||
UINT32 BufferLength);
|
||||
|
||||
VOID
|
||||
HwdbgShowIntanceInfo(HWDBG_INSTANCE_INFORMATION * InstanceInfo);
|
||||
|
|
|
|||
|
|
@ -687,3 +687,19 @@ HardwareScriptInterpreterConvertSymbolToHwdbgShortSymbolBuffer(
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Function free the short symbol buffer
|
||||
*
|
||||
* @param NewShortSymbolBuffer
|
||||
*
|
||||
* @return VOID
|
||||
*/
|
||||
VOID
|
||||
HardwareScriptInterpreterFreeHwdbgShortSymbolBuffer(HWDBG_SHORT_SYMBOL * NewShortSymbolBuffer)
|
||||
{
|
||||
if (NewShortSymbolBuffer)
|
||||
{
|
||||
free(NewShortSymbolBuffer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
12
hyperdbg/script-engine/code/pch.c
Normal file
12
hyperdbg/script-engine/code/pch.c
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* @file pch.h
|
||||
* @author M.H. Gholamrezaei (mh@hyperdbg.org)
|
||||
*
|
||||
* @details Pre-compiled headers
|
||||
* @version 0.1
|
||||
* @date 2020-10-22
|
||||
*
|
||||
* @copyright This project is released under the GNU Public License v3.
|
||||
*
|
||||
*/
|
||||
#include "pch.h"
|
||||
|
|
@ -60,7 +60,7 @@
|
|||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SCRIPTENGINE_EXPORTS</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\script-engine\header;$(SolutionDir)\include;$(SolutionDir)\script-engine;$(SolutionDir)\script-eval;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
|
|
@ -86,7 +86,7 @@
|
|||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SCRIPTENGINE_EXPORTS</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\script-engine\header;$(SolutionDir)\include;$(SolutionDir)\script-engine;$(SolutionDir)\script-eval;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
|
|
@ -122,6 +122,10 @@
|
|||
<ClCompile Include="code\globals.c" />
|
||||
<ClCompile Include="code\hardware.c" />
|
||||
<ClCompile Include="code\parse-table.c" />
|
||||
<ClCompile Include="code\pch.c">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='release|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='debug|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="code\scanner.c" />
|
||||
<ClCompile Include="code\script-engine.c" />
|
||||
<ClCompile Include="code\type.c" />
|
||||
|
|
|
|||
|
|
@ -64,5 +64,8 @@
|
|||
<ClCompile Include="code\hardware.c">
|
||||
<Filter>code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="code\pch.c">
|
||||
<Filter>code</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Loading…
Add table
Add a link
Reference in a new issue