Skip to content

Commit 74e1c7c

Browse files
committedOct 5, 2023
Add a MemoryTest executable
1 parent 65533ab commit 74e1c7c

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed
 

‎CMakeLists.txt

+34
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,40 @@ target_link_options(DebugMe PRIVATE
108108
unset(CMKR_TARGET)
109109
unset(CMKR_SOURCES)
110110

111+
# Target MemoryTest
112+
set(CMKR_TARGET MemoryTest)
113+
set(MemoryTest_SOURCES "")
114+
115+
list(APPEND MemoryTest_SOURCES
116+
"src/MemoryTest/MemoryTest.cpp"
117+
)
118+
119+
list(APPEND MemoryTest_SOURCES
120+
cmake.toml
121+
)
122+
123+
set(CMKR_SOURCES ${MemoryTest_SOURCES})
124+
add_executable(MemoryTest)
125+
126+
if(MemoryTest_SOURCES)
127+
target_sources(MemoryTest PRIVATE ${MemoryTest_SOURCES})
128+
endif()
129+
130+
get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT)
131+
if(NOT CMKR_VS_STARTUP_PROJECT)
132+
set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT MemoryTest)
133+
endif()
134+
135+
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${MemoryTest_SOURCES})
136+
137+
target_link_options(MemoryTest PRIVATE
138+
"/DYNAMICBASE:NO"
139+
"/INCREMENTAL:NO"
140+
)
141+
142+
unset(CMKR_TARGET)
143+
unset(CMKR_SOURCES)
144+
111145
# Target TestTitanEngine
112146
set(CMKR_TARGET TestTitanEngine)
113147
set(TestTitanEngine_SOURCES "")

‎cmake.toml

+9-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,18 @@ link-options = ["/INCREMENTAL:NO"]
1111
[target.DebugLoop.properties]
1212
VS_DEBUGGER_COMMAND_ARGUMENTS = "\"$<TARGET_FILE:DebugMe>\""
1313

14-
[target.DebugMe]
14+
[template.test]
1515
type = "executable"
16-
sources = ["src/DebugMe/*.cpp"]
1716
link-options = ["/DYNAMICBASE:NO", "/INCREMENTAL:NO"]
1817

18+
[target.DebugMe]
19+
type = "test"
20+
sources = ["src/DebugMe/*.cpp"]
21+
22+
[target.MemoryTest]
23+
type = "test"
24+
sources = ["src/MemoryTest/*.cpp"]
25+
1926
[target.TestTitanEngine]
2027
type = "executable"
2128
sources = ["src/TestTitanEngine/*.cpp", "src/TestTitanEngine/*.h"]

‎src/MemoryTest/MemoryTest.cpp

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include <iostream>
2+
#include <Windows.h>
3+
#include <atomic>
4+
5+
#define EXPORT extern "C" __declspec(dllexport)
6+
7+
#pragma section(".memrw", read, write)
8+
9+
10+
__declspec(allocate(".memrw"))
11+
EXPORT char HelloWorld[0x4000] = "Hello";
12+
13+
int main()
14+
{
15+
puts("[DebugMe] Hello debugger!");
16+
17+
char buffer[256];
18+
for (int i = 0; i < 6; i++)
19+
buffer[i] = HelloWorld[i];
20+
puts(buffer);
21+
22+
return 0;
23+
}

0 commit comments

Comments
 (0)
Please sign in to comment.