1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-22 17:39:53 +03:00

Merge pull request #811 from davidebeatrici/build-release-debug-info

Merge PR #811: Build debug info in release builds, provide PDB files on AppVeyor
This commit is contained in:
Ilya Shipitsin 2018-11-18 10:27:32 +05:00 committed by GitHub
commit 1c89bf7ede
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 137 additions and 165 deletions

View File

@ -24,9 +24,16 @@ for:
build_script: build_script:
- src\BuildAll.cmd - src\BuildAll.cmd
- exit %errorlevel% - exit %errorlevel%
after_build:
- 7z a "%APPVEYOR_BUILD_FOLDER%\src\bin\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x86_%CONFIGURATION%_PDBs.zip" "%APPVEYOR_BUILD_FOLDER%\src\DebugFiles\pdb\Win32_Release\*.pdb"
- 7z a "%APPVEYOR_BUILD_FOLDER%\src\bin\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%_PDBs.zip" "%APPVEYOR_BUILD_FOLDER%\src\DebugFiles\pdb\x64_Release\*.pdb"
artifacts: artifacts:
- path: output\pkg\*\* - path: output\pkg\*\*
name: Windows name: Release
- path: src\bin\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x86_%CONFIGURATION%_PDBs.zip
name: PDBs (x86)
- path: src\bin\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%_PDBs.zip
name: PDBs (x64)
- -
matrix: matrix:
only: only:
@ -40,9 +47,12 @@ for:
after_build: after_build:
- 7z a "%APPVEYOR_BUILD_FOLDER%\build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip" "%APPVEYOR_BUILD_FOLDER%\build\*.exe" - 7z a "%APPVEYOR_BUILD_FOLDER%\build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip" "%APPVEYOR_BUILD_FOLDER%\build\*.exe"
- 7z a "%APPVEYOR_BUILD_FOLDER%\build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip" "%APPVEYOR_BUILD_FOLDER%\build\hamcore.se2" - 7z a "%APPVEYOR_BUILD_FOLDER%\build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip" "%APPVEYOR_BUILD_FOLDER%\build\hamcore.se2"
- 7z a "%APPVEYOR_BUILD_FOLDER%\build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%_PDBs.zip" "%APPVEYOR_BUILD_FOLDER%\build\*.pdb"
artifacts: artifacts:
- path: build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip - path: build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%.zip
name: Windows name: Release
- path: build\%APPVEYOR_PROJECT_NAME%_%APPVEYOR_BUILD_VERSION%_Windows_x64_%CONFIGURATION%_PDBs.zip
name: PDBs
- -
matrix: matrix:
only: only:

View File

@ -5,7 +5,13 @@ project(SoftEtherVPN
LANGUAGES C LANGUAGES C
) )
set(default_build_type "Release") # We define a dedicated variable because CMAKE_BUILD_TYPE can have different
# configurations than "Debug" and "Release", such as "RelWithDebInfo".
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(BUILD_TYPE "Debug")
else()
set(BUILD_TYPE "Release")
endif()
# Check that submodules are present only if source was downloaded with git # Check that submodules are present only if source was downloaded with git
if(EXISTS "${SoftEtherVPN_SOURCE_DIR}/.git" AND NOT EXISTS "${SoftEtherVPN_SOURCE_DIR}/src/Mayaqua/3rdparty/cpu_features/CMakeLists.txt") if(EXISTS "${SoftEtherVPN_SOURCE_DIR}/.git" AND NOT EXISTS "${SoftEtherVPN_SOURCE_DIR}/src/Mayaqua/3rdparty/cpu_features/CMakeLists.txt")

2
configure vendored
View File

@ -45,7 +45,7 @@ fi
echo "" echo ""
(cd tmp && cmake ${CMAKE_FLAGS} .. || exit 1) (cd tmp && cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ${CMAKE_FLAGS} .. || exit 1)
echo "" echo ""

View File

@ -23,7 +23,7 @@ if not exist "tmp" (
cd tmp cd tmp
cmake -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" .. cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles" ..
if %errorlevel% == 0 ( if %errorlevel% == 0 (
echo. echo.

View File

@ -16,11 +16,9 @@ if(UNIX)
endmacro(install_wrapper_script) endmacro(install_wrapper_script)
endif() endif()
if(CMAKE_BUILD_TYPE STREQUAL "Debug") if(BUILD_TYPE STREQUAL "Debug")
add_definitions(-D_DEBUG -DDEBUG) add_definitions(-D_DEBUG -DDEBUG)
endif() else()
if(CMAKE_BUILD_TYPE STREQUAL "Release")
add_definitions(-DNDEBUG -DVPN_SPEED) add_definitions(-DNDEBUG -DVPN_SPEED)
endif() endif()

View File

@ -20,6 +20,12 @@ set_target_properties(cedar
) )
if(WIN32) if(WIN32)
set_target_properties(cedar
PROPERTIES
COMPILE_PDB_NAME "cedar"
COMPILE_PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
target_include_directories(cedar PRIVATE winpcap) target_include_directories(cedar PRIVATE winpcap)
endif() endif()

View File

@ -17,6 +17,12 @@ set_target_properties(mayaqua
) )
if(WIN32) if(WIN32)
set_target_properties(mayaqua
PROPERTIES
COMPILE_PDB_NAME "mayaqua"
COMPILE_PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
add_subdirectory(3rdparty/zlib) add_subdirectory(3rdparty/zlib)
target_include_directories(mayaqua PRIVATE win32_inc) target_include_directories(mayaqua PRIVATE win32_inc)
@ -25,22 +31,22 @@ if(WIN32)
if(${COMPILER_ARCHITECTURE} STREQUAL "x64") if(${COMPILER_ARCHITECTURE} STREQUAL "x64")
find_library(LIB_SSL find_library(LIB_SSL
NAMES libssl ssleay32 NAMES libssl ssleay32
HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/x64_${CMAKE_BUILD_TYPE}" HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/x64_${BUILD_TYPE}"
) )
find_library(LIB_CRYPTO find_library(LIB_CRYPTO
NAMES libcrypto libeay32 NAMES libcrypto libeay32
HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/x64_${CMAKE_BUILD_TYPE}" HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/x64_${BUILD_TYPE}"
) )
else() else()
find_library(LIB_SSL find_library(LIB_SSL
NAMES libssl ssleay32 NAMES libssl ssleay32
HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/Win32_${CMAKE_BUILD_TYPE}" HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/Win32_${BUILD_TYPE}"
) )
find_library(LIB_CRYPTO find_library(LIB_CRYPTO
NAMES libcrypto libeay32 NAMES libcrypto libeay32
HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/Win32_${CMAKE_BUILD_TYPE}" HINTS "${CMAKE_SOURCE_DIR}/src/BuildFiles/Library/vs2017/Win32_${BUILD_TYPE}"
) )
endif() endif()

View File

@ -552,8 +552,11 @@ void InitMayaqua(bool memcheck, bool debug, int argc, char **argv)
// Initialize the Kernel status // Initialize the Kernel status
InitKernelStatus(); InitKernelStatus();
if (IsTrackingEnabled())
{
// Initialize the tracking // Initialize the tracking
InitTracking(); InitTracking();
}
// Initialization of thread pool // Initialization of thread pool
InitThreading(); InitThreading();
@ -696,7 +699,8 @@ void FreeMayaqua()
// Release of thread pool // Release of thread pool
FreeThreading(); FreeThreading();
#ifndef VPN_SPEED if (IsTrackingEnabled())
{
// Show the kernel status // Show the kernel status
if (g_debug) if (g_debug)
{ {
@ -708,10 +712,10 @@ void FreeMayaqua()
{ {
PrintDebugInformation(); PrintDebugInformation();
} }
#endif // VPN_SPEED
// Release the tracking // Release the tracking
FreeTracking(); FreeTracking();
}
// Release of the kernel status // Release of the kernel status
FreeKernelStatus(); FreeKernelStatus();

View File

@ -125,10 +125,8 @@
// Macro for the release flag // Macro for the release flag
#ifdef VPN_SPEED #ifdef VPN_SPEED
#define DONT_USE_KERNEL_STATUS // Do not update the kernel status
#define WIN32_USE_HEAP_API_FOR_MEMORY // Use the heap API to allocate memory #define WIN32_USE_HEAP_API_FOR_MEMORY // Use the heap API to allocate memory
#define WIN32_NO_DEBUG_HELP_DLL // Do not call the DLL for debugging #define WIN32_NO_DEBUG_HELP_DLL // Do not call the DLL for debugging
#define DONT_CHECK_HEAP // Do not check the status of the heap
#define DONT_ALLOW_RUN_ON_DEBUGGER // Do not allow running on the debugger #define DONT_ALLOW_RUN_ON_DEBUGGER // Do not allow running on the debugger
#endif // VPN_SPEED #endif // VPN_SPEED
@ -412,43 +410,35 @@ extern BOOL kernel_status_inited;
#define KS_GETMAX64(id) (kernel_status_max[id]) #define KS_GETMAX64(id) (kernel_status_max[id])
#define KS_GETMAX(id) ((UINT)KS_GETMAX64(id)) #define KS_GETMAX(id) ((UINT)KS_GETMAX64(id))
#ifdef DONT_USE_KERNEL_STATUS // Operations of the kernel status
// Disable operations of the kernel status
#define KS_INC(id)
#define KS_DEC(id)
#define KS_ADD(id, n)
#define KS_SUB(id, n)
#else // DONT_USE_KERNEL_STATUS
// Enable operations of the kernel status
#define KS_INC(id) \ #define KS_INC(id) \
if (kernel_status_inited) { \ if (IsTrackingEnabled()) { \
KS_LOCK(id); \ KS_LOCK(id); \
kernel_status[id]++; \ kernel_status[id]++; \
kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \ kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \
KS_UNLOCK(id); \ KS_UNLOCK(id); \
} }
#define KS_DEC(id) \ #define KS_DEC(id) \
if (kernel_status_inited) { \ if (IsTrackingEnabled()) { \
KS_LOCK(id); \ KS_LOCK(id); \
kernel_status[id]--; \ kernel_status[id]--; \
kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \ kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \
KS_UNLOCK(id); \ KS_UNLOCK(id); \
} }
#define KS_ADD(id, n) \ #define KS_ADD(id, n) \
if (kernel_status_inited) { \ if (IsTrackingEnabled()) { \
KS_LOCK(id); \ KS_LOCK(id); \
kernel_status[id] += n; \ kernel_status[id] += n; \
kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \ kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \
KS_UNLOCK(id); \ KS_UNLOCK(id); \
} }
#define KS_SUB(id, n) \ #define KS_SUB(id, n) \
if (kernel_status_inited) { \ if (IsTrackingEnabled()) { \
KS_LOCK(id); \ KS_LOCK(id); \
kernel_status[id] -= n; \ kernel_status[id] -= n; \
kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \ kernel_status_max[id] = MAX(kernel_status_max[id], kernel_status[id]); \
KS_UNLOCK(id); \ KS_UNLOCK(id); \
} }
#endif // DONT_USE_KERNEL_STATUS
// Kernel status // Kernel status
// String related // String related

View File

@ -972,10 +972,6 @@ SK *NewSkEx(bool no_compact)
s->p = Malloc(sizeof(void *) * s->num_reserved); s->p = Malloc(sizeof(void *) * s->num_reserved);
s->no_compact = no_compact; s->no_compact = no_compact;
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(s), "SK", 0);
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWSK_COUNT); KS_INC(KS_NEWSK_COUNT);
@ -1011,10 +1007,6 @@ void CleanupSk(SK *s)
DeleteLock(s->lock); DeleteLock(s->lock);
Free(s); Free(s);
#ifndef DONT_USE_KERNEL_STATUS
// TrackDeleteObj(POINTER_TO_UINT64(s));
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_FREESK_COUNT); KS_INC(KS_FREESK_COUNT);
} }
@ -1278,10 +1270,6 @@ void CleanupQueue(QUEUE *q)
DeleteLock(q->lock); DeleteLock(q->lock);
Free(q); Free(q);
#ifndef DONT_USE_KERNEL_STATUS
// TrackDeleteObj(POINTER_TO_UINT64(q));
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_FREEQUEUE_COUNT); KS_INC(KS_FREEQUEUE_COUNT);
} }
@ -1297,10 +1285,6 @@ QUEUE *NewQueue()
q->num_item = 0; q->num_item = 0;
q->fifo = NewFifo(); q->fifo = NewFifo();
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(q), "QUEUE", 0);
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWQUEUE_COUNT); KS_INC(KS_NEWQUEUE_COUNT);
@ -1316,10 +1300,6 @@ QUEUE *NewQueueFast()
q->num_item = 0; q->num_item = 0;
q->fifo = NewFifoFast(); q->fifo = NewFifoFast();
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(q), "QUEUE", 0);
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWQUEUE_COUNT); KS_INC(KS_NEWQUEUE_COUNT);
@ -1783,10 +1763,6 @@ void CleanupList(LIST *o)
// KS // KS
KS_INC(KS_FREELIST_COUNT); KS_INC(KS_FREELIST_COUNT);
#ifndef DONT_USE_KERNEL_STATUS
// TrackDeleteObj(POINTER_TO_UINT64(o));
#endif // DONT_USE_KERNEL_STATUS
} }
// Check whether the specified number is already in the list // Check whether the specified number is already in the list
@ -2145,10 +2121,6 @@ LIST *NewListEx2(COMPARE *cmp, bool fast, bool fast_malloc)
o->cmp = cmp; o->cmp = cmp;
o->sorted = true; o->sorted = true;
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(o), "LIST", 0);
#endif //DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWLIST_COUNT); KS_INC(KS_NEWLIST_COUNT);
@ -2422,10 +2394,6 @@ void CleanupFifo(FIFO *f)
Free(f->p); Free(f->p);
Free(f); Free(f);
#ifndef DONT_USE_KERNEL_STATUS
// TrackDeleteObj(POINTER_TO_UINT64(f));
#endif //DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_FREEFIFO_COUNT); KS_INC(KS_FREEFIFO_COUNT);
} }
@ -2472,10 +2440,6 @@ FIFO *NewFifoEx2(bool fast, bool fixed)
f->p = Malloc(FIFO_INIT_MEM_SIZE); f->p = Malloc(FIFO_INIT_MEM_SIZE);
f->fixed = false; f->fixed = false;
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(f), "FIFO", 0);
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWFIFO_COUNT); KS_INC(KS_NEWFIFO_COUNT);
@ -2793,10 +2757,6 @@ BUF *NewBuf()
b->Current = 0; b->Current = 0;
b->SizeReserved = INIT_BUF_SIZE; b->SizeReserved = INIT_BUF_SIZE;
#ifndef DONT_USE_KERNEL_STATUS
// TrackNewObj(POINTER_TO_UINT64(b), "BUF", 0);
#endif // DONT_USE_KERNEL_STATUS
// KS // KS
KS_INC(KS_NEWBUF_COUNT); KS_INC(KS_NEWBUF_COUNT);
KS_INC(KS_CURRENT_BUF_COUNT); KS_INC(KS_CURRENT_BUF_COUNT);
@ -3241,10 +3201,6 @@ void FreeBuf(BUF *b)
// KS // KS
KS_INC(KS_FREEBUF_COUNT); KS_INC(KS_FREEBUF_COUNT);
KS_DEC(KS_CURRENT_BUF_COUNT); KS_DEC(KS_CURRENT_BUF_COUNT);
#ifndef DONT_USE_KERNEL_STATUS
// TrackDeleteObj(POINTER_TO_UINT64(b));
#endif // DONT_USE_KERNEL_STATUS
} }
// Compare BUFs whether two are identical // Compare BUFs whether two are identical
@ -3802,7 +3758,11 @@ void Free(void *addr)
// Check the memtag // Check the memtag
void CheckMemTag(MEMTAG *tag) void CheckMemTag(MEMTAG *tag)
{ {
#ifndef DONT_CHECK_HEAP if (IsTrackingEnabled() == false)
{
return;
}
// Validate arguments // Validate arguments
if (tag == NULL) if (tag == NULL)
{ {
@ -3815,7 +3775,6 @@ void CheckMemTag(MEMTAG *tag)
AbortExitEx("CheckMemTag: tag->Magic != MEMTAG_MAGIC"); AbortExitEx("CheckMemTag: tag->Magic != MEMTAG_MAGIC");
return; return;
} }
#endif // DONT_CHECK_HEAP
} }
// ZeroMalloc // ZeroMalloc
@ -3859,9 +3818,7 @@ void *InternalMalloc(UINT size)
OSSleep(MEMORY_SLEEP_TIME); OSSleep(MEMORY_SLEEP_TIME);
} }
#ifndef DONT_USE_KERNEL_STATUS
TrackNewObj(POINTER_TO_UINT64(addr), "MEM", size); TrackNewObj(POINTER_TO_UINT64(addr), "MEM", size);
#endif //DONT_USE_KERNEL_STATUS
return addr; return addr;
} }
@ -3879,9 +3836,7 @@ void InternalFree(void *addr)
KS_DEC(KS_CURRENT_MEM_COUNT); KS_DEC(KS_CURRENT_MEM_COUNT);
KS_INC(KS_FREE_COUNT); KS_INC(KS_FREE_COUNT);
#ifndef DONT_USE_KERNEL_STATUS
TrackDeleteObj(POINTER_TO_UINT64(addr)); TrackDeleteObj(POINTER_TO_UINT64(addr));
#endif // DONT_USE_KERNEL_STATUS
// Memory release // Memory release
OSMemoryFree(addr); OSMemoryFree(addr);
@ -3914,9 +3869,7 @@ void *InternalReAlloc(void *addr, UINT size)
OSSleep(MEMORY_SLEEP_TIME); OSSleep(MEMORY_SLEEP_TIME);
} }
#ifndef DONT_USE_KERNEL_STATUS
TrackChangeObjSize(POINTER_TO_UINT64(addr), size, POINTER_TO_UINT64(new_addr)); TrackChangeObjSize(POINTER_TO_UINT64(addr), size, POINTER_TO_UINT64(new_addr));
#endif // DONT_USE_KERNEL_STATUS
return new_addr; return new_addr;
} }

View File

@ -1071,8 +1071,6 @@ void FreeTable()
return; return;
} }
TrackingDisable();
num = LIST_NUM(TableList); num = LIST_NUM(TableList);
tables = ToArray(TableList); tables = ToArray(TableList);
for (i = 0;i < num;i++) for (i = 0;i < num;i++)
@ -1088,8 +1086,6 @@ void FreeTable()
Free(tables); Free(tables);
Zero(old_table_name, sizeof(old_table_name)); Zero(old_table_name, sizeof(old_table_name));
TrackingEnable();
} }
// Read a string table from the buffer // Read a string table from the buffer
@ -1479,8 +1475,6 @@ bool LoadTableW(wchar_t *filename)
Zero(replace_name, sizeof(replace_name)); Zero(replace_name, sizeof(replace_name));
TrackingDisable();
b = ReadDump("@table_name.txt"); b = ReadDump("@table_name.txt");
if (b != NULL) if (b != NULL)
{ {
@ -1500,9 +1494,5 @@ bool LoadTableW(wchar_t *filename)
ret = LoadTableMain(filename); ret = LoadTableMain(filename);
TrackingEnable();
return ret; return ret;
} }

View File

@ -127,27 +127,14 @@ static LOCK *obj_lock;
static LOCK *obj_id_lock; static LOCK *obj_id_lock;
static UINT obj_id; static UINT obj_id;
static LOCK *cs_lock; static LOCK *cs_lock;
static bool disable_tracking = false;
static TRACKING_LIST **hashlist; static TRACKING_LIST **hashlist;
static bool do_not_get_callstack; static bool do_not_get_callstack;
// Enable the tracking
void TrackingEnable()
{
disable_tracking = false;
}
// Disable the tracking
void TrackingDisable()
{
disable_tracking = true;
}
// Get whether the tracking is enabled // Get whether the tracking is enabled
bool IsTrackingEnabled() bool IsTrackingEnabled()
{ {
return !disable_tracking; return (IsDebug() || IsMemCheck()) && kernel_status_inited;
} }
// Memory debug menu // Memory debug menu
@ -482,14 +469,9 @@ void TrackNewObj(UINT64 addr, char *name, UINT size)
return; return;
} }
if (IsMemCheck() == false) if ((IsTrackingEnabled() && IsMemCheck()) == false)
{
// Don't track in the release mode
return;
}
if (disable_tracking)
{ {
// Don't track in detail if the memory check option is not specified
return; return;
} }
@ -528,14 +510,9 @@ void TrackDeleteObj(UINT64 addr)
return; return;
} }
if (IsMemCheck() == false) if ((IsTrackingEnabled() && IsMemCheck()) == false)
{
// Don't track in the release mode
return;
}
if (disable_tracking)
{ {
// Don't track in detail if the memory check option is not specified
return; return;
} }
@ -545,11 +522,7 @@ void TrackDeleteObj(UINT64 addr)
if (o == NULL) if (o == NULL)
{ {
UnlockTrackingList(); UnlockTrackingList();
Debug("TrackDeleteObj(): 0x%x not found in tracking list!\n", addr);
if (IsDebug())
{
printf("TrackDeleteObj: 0x%x is not Object!!\n", (void *)addr);
}
return; return;
} }
DeleteTrackingList(o, true); DeleteTrackingList(o, true);
@ -567,14 +540,9 @@ void TrackChangeObjSize(UINT64 addr, UINT size, UINT64 new_addr)
return; return;
} }
if (IsMemCheck() == false) if ((IsTrackingEnabled() && IsMemCheck()) == false)
{
// Don't track in the release mode
return;
}
if (disable_tracking)
{ {
// Don't track in detail if the memory check option is not specified
return; return;
} }

View File

@ -188,10 +188,6 @@ void PrintObjectList(TRACKING_OBJECT *o);
void PrintObjectInfo(TRACKING_OBJECT *o); void PrintObjectInfo(TRACKING_OBJECT *o);
void DebugPrintObjectInfo(UINT id); void DebugPrintObjectInfo(UINT id);
void TrackingEnable();
void TrackingDisable();
bool IsTrackingEnabled(); bool IsTrackingEnabled();
#endif // TRACKING_H #endif // TRACKING_H

View File

@ -9,6 +9,7 @@ set_target_properties(PenCore
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore" ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/bin/hamcore"
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
target_link_libraries(PenCore cedar mayaqua) target_link_libraries(PenCore cedar mayaqua)

View File

@ -7,4 +7,11 @@ set_target_properties(hamcorebuilder
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp"
) )
if(WIN32)
set_target_properties(hamcorebuilder
PROPERTIES
PDB_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/tmp"
)
endif()
target_link_libraries(hamcorebuilder cedar mayaqua) target_link_libraries(hamcorebuilder cedar mayaqua)

View File

@ -13,6 +13,13 @@ set_target_properties(vpnbridge
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
if(WIN32)
set_target_properties(vpnbridge
PROPERTIES
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
endif()
target_link_libraries(vpnbridge cedar mayaqua) target_link_libraries(vpnbridge cedar mayaqua)
if(UNIX) if(UNIX)

View File

@ -13,6 +13,13 @@ set_target_properties(vpnclient
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
if(WIN32)
set_target_properties(vpnclient
PROPERTIES
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
endif()
target_link_libraries(vpnclient cedar mayaqua) target_link_libraries(vpnclient cedar mayaqua)
if(UNIX) if(UNIX)

View File

@ -13,6 +13,13 @@ set_target_properties(vpncmd
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
if(WIN32)
set_target_properties(vpncmd
PROPERTIES
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
endif()
target_link_libraries(vpncmd cedar mayaqua) target_link_libraries(vpncmd cedar mayaqua)
if(UNIX) if(UNIX)

View File

@ -17,6 +17,7 @@ set_target_properties(vpncmgr
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
target_link_libraries(vpncmgr cedar mayaqua) target_link_libraries(vpncmgr cedar mayaqua)

View File

@ -13,6 +13,13 @@ set_target_properties(vpnserver
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
if(WIN32)
set_target_properties(vpnserver
PROPERTIES
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
endif()
target_link_libraries(vpnserver cedar mayaqua) target_link_libraries(vpnserver cedar mayaqua)
if(UNIX) if(UNIX)

View File

@ -17,6 +17,7 @@ set_target_properties(vpnsmgr
ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" ARCHIVE_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" LIBRARY_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
target_link_libraries(vpnsmgr cedar mayaqua) target_link_libraries(vpnsmgr cedar mayaqua)

View File

@ -17,4 +17,11 @@ set_target_properties(vpntest
RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
) )
if(WIN32)
set_target_properties(vpntest
PROPERTIES
PDB_OUTPUT_DIRECTORY "${BUILD_DIRECTORY}"
)
endif()
target_link_libraries(vpntest cedar mayaqua) target_link_libraries(vpntest cedar mayaqua)