The Windows port adds and modifies the following files:
Headers | Changes |
---|---|
include/pub_tool_basics.h | define UWord and Word for LLP64 programming model, define OffT |
include/pub_tool_basics_asm.h | define platform specific VG_ and ML_ as well as VGASM_ and MLASM_ macros |
include/pub_tool_libcbase.h | added prototypes for some wide char functions |
include/pub_tool_machine.h | define some constants |
include/pub_tool_redir.h | define C library names |
include/pub_tool_vki.h | include platform specific version |
include/pub_tool_vkiscnums_asm.h | do not include any predefined system call numbers |
include/valgrind.h | added support for 64 bit MinGW |
VEX | Changes |
---|---|
VEX/priv/guest_amd64_helpers.c | support segment registers |
VEX/priv/guest_amd64_toIR.c | support segment registers, prefetchw, "MOV Sw,Ew", "MOV Ew,Sw" and "PUSH Ev" instructions. Do not put next RIP into RCX before SYSCALL (RCX is first syscall arg!) |
VEX/priv/guest_ppc_toIR.c | inhibit compiler warnings |
VEX/priv/guest_x86_defs.h | support LSL instruction |
VEX/priv/guest_x86_helpers.c | " |
VEX/priv/guest_x86_toIR.c | support interrupts 42-46 for WIN32, far jump for WOW64 and LSL |
VEX/priv/host_amd64_defs.c | support WIN64 calling convention |
VEX/priv/host_amd64_isel.c | " |
VEX/priv/host_arm_defs.c | inhibit compiler warning |
VEX/priv/host_x86_defs.c | support interrupts 42-46 for WIN32, far jump for WOW64 |
VEX/priv/host_x86_isel.c | " |
VEX/priv/ir_defs.c | " |
VEX/priv/main_util.h | printf checking, inhibit compiler warnings |
VEX/pub/libvex_basictypes.h | define HWord for LLP64 programming model |
VEX/pub/libvex_guest_amd64.h | support segment registers in guest state |
VEX/pub/libvex_ir.h | support interrupts 42-46 for WIN32, far jump for WOW64 |
VEX/pub/libvex_trc_values.h | " |
Build system | Changes |
---|---|
Makefile.am | Build system autoconf/automake extended to compile Valgrind under MinGW |
Makefile.all.am | " |
Makefile.tool.am | " |
auxprogs/Makefile.am | link valgrind_listener with ws2_32.dll |
cachegrind/tests/Makefile.am | defined test programs to build |
cachegrind/tests/x86/Makefile.am | " |
callgrind/tests/Makefile.am | " |
configure.in | Build system autoconf/automake extended to compile Valgrind under MinGW |
coregrind/Makefile.am | inhibited vgdb (see [#5]), added Windows sources |
exp-sgcheck/tests/Makefile.am | defined test programs to build |
gdbserver_tests/Makefile.am | do not build any test programs (see [#5]) |
massif/tests/Makefile.am | defined test programs to build |
memcheck/tests/Makefile.am | added subdir for Windows tests, defined test programs to build |
memcheck/tests/amd64/Makefile.am | defined test programs to build |
memcheck/tests/x86/Makefile.am | " |
none/tests/Makefile.am | " |
none/tests/amd64/Makefile.am | " |
none/tests/x86/Makefile.am | " |
perf/Makefile.am | " |
tests/Makefile.am | added subdir for Windows tests/utilities |
Core | Changes |
---|---|
coregrind/m_aspacemgr/aspacemgr-common.c | Windows version of common helper functions |
coregrind/m_aspacemgr/aspacemgr-linux.c | see [AspaceManager] |
coregrind/m_cpuid.S | WIN64 calling conventions, VG_ -> VGASM_ |
coregrind/m_debugger.c | disabled VG_(start_debugger) (see [#5]) |
coregrind/m_debuginfo/d3basics.c | enabled Windows part in get_Dwarf_Reg, printf 32/64 bit fixes |
coregrind/m_debuginfo/debuginfo.c | Windows-specific VG_(di_notify_mmap), printf 32/64 bit fixes |
coregrind/m_debuginfo/priv_readpdb.h | Windows-specific ML_(find_name_of_pdb_file) |
coregrind/m_debuginfo/priv_storage.h | FPO_DATA defined in Windows headers |
coregrind/m_debuginfo/readdwarf.c | enable for Windows, printf 32/64 bit fixes, (see [#1]) |
coregrind/m_debuginfo/readdwarf3.c | enable for Windows, printf 32/64 bit fixes |
coregrind/m_debuginfo/readpdb.c | enable for Windows, structure packing, Windows-specific processing, Windows-specific ML_(find_name_of_pdb_file) (see [#6]) |
coregrind/m_debuginfo/readstabs.c | enable for Windows, define struct nlist (see [#1]) |
coregrind/m_debuginfo/storage.c | names have no version number, printf32/64 (see [#1]) |
coregrind/m_debuginfo/tytypes.c | printf 32/64 bit fixes |
coregrind/m_debuglog.c | support %pU and %pW in printf, Windows logging method |
coregrind/m_errormgr.c | printf 32/64 bit fixes |
coregrind/m_execontext.c | " |
coregrind/m_gdbserver/m_gdbserver.c | " |
coregrind/m_gdbserver/target.c | " |
coregrind/m_gdbserver/utils.c | " |
coregrind/m_gdbserver/valgrind-low-amd64.c | 32/64 bit integer size fix |
coregrind/m_gdbserver/valgrind-low-arm.c | " |
coregrind/m_gdbserver/valgrind-low-mips32.c | " |
coregrind/m_gdbserver/valgrind-low-ppc32.c | " |
coregrind/m_gdbserver/valgrind-low-ppc64.c | " |
coregrind/m_gdbserver/valgrind-low-s390x.c | " |
coregrind/m_gdbserver/valgrind-low-x86.c | " |
coregrind/m_hashtable.c | printf 32/64 bit fixes |
coregrind/m_libcassert.c | make Windows platform known |
coregrind/m_libcfile.c | posix emulation |
coregrind/m_libcproc.c | implemented Windows-specific versions, disabled stuff that does not apply to Windows |
coregrind/m_libcsignal.c | " |
coregrind/m_machine.c | inhibit altstack, implement shadow EAX |
coregrind/m_main.c | changes to command line arguments, main setup, Windows-specific _start |
coregrind/m_mallocfree.c | allocation granularity 64 k |
coregrind/m_options.c | Windows defaults of command line options |
coregrind/m_redir.c | make Windows platform known, inhibit libc_freeres code |
coregrind/m_replacemalloc/vg_replace_malloc.c | replace free, malloc, etc. in Windows c lib |
coregrind/m_scheduler/priv_sema.h | definition of Windows mutex type |
coregrind/m_scheduler/scheduler.c | support for interrupts 42-46 and far jmp; Windows-specific yield, terminate threads; VG_(user_callback_dispatch); other syscall handling; printf 32/64 bit fixes |
coregrind/m_scheduler/sema.c | disabled entire source file (Windows-specific implementation is in sema-windows.c) |
coregrind/m_signals.c | disabled most of its contents as it does not apply to Windows |
coregrind/m_stacks.c | printf 32/64 bit fixes |
coregrind/m_stacktrace.c | enable Windows platform, printf 32/64 bit fixes |
coregrind/m_syscall.c | Windows syscalling implementations: do_syscall_WRK |
coregrind/m_syswrap/priv_types_n_macros.h | define 20 syscall args & macros |
coregrind/m_syswrap/syswrap-main.c | Windows syscall wrapping |
coregrind/m_trampoline.S | Windows trampoline placeholder (currently empty because Windows implementation does not need trampolines) |
coregrind/m_translate.c | inhibit gdbserver code (see [#5]), enable gs segment register for WIN64 |
coregrind/m_ume/main.c | disabled entire file as it does not apply to Windows |
coregrind/m_ume/script.c | " |
coregrind/m_vki.c | page size and granularity, WOW64 flag, disabled signal sanity checks |
coregrind/m_vkiscnums.c | added Windows-specific implementation |
coregrind/m_xarray.c | printf 32/64 bit fixes |
coregrind/pub_core_clreq.h | printf format |
coregrind/pub_core_debuginfo.h | Windows-specific VG_(di_notify_mmap) |
coregrind/pub_core_debuglog.h | validation of printf args |
coregrind/pub_core_initimg.h | define Windows structures |
coregrind/pub_core_machine.h | make Windows platform known |
coregrind/pub_core_mallocfree.h | make Windows platform known |
coregrind/pub_core_syscall.h | up to 20 syscall arguments |
coregrind/pub_core_threadstate.h | add Windows specific fields in thread state |
coregrind/pub_core_ume.h | Windows-specific members in ExeInfo |
Tools | Changes |
---|---|
auxprogs/valgrind_listener.c | Windows port using Winsock2 |
cachegrind/cg_main.c | printf 32/64 bit fixes |
cachegrind/cg_merge.c | printf 32/64 bit fixes |
cachegrind/cg_sim.c | printf 32/64 bit fixes |
callgrind/bb.c | printf 32/64 bit fixes |
callgrind/bbcc.c | printf 32/64 bit fixes |
callgrind/callstack.c | printf 32/64 bit fixes |
callgrind/context.c | printf 32/64 bit fixes |
callgrind/debug.c | printf 32/64 bit fixes |
callgrind/dump.c | printf 32/64 bit fixes, handle Windows path separators in dump file name |
callgrind/fn.c | printf 32/64 bit fixes |
callgrind/main.c | printf 32/64 bit fixes |
callgrind/sim.c | printf 32/64 bit fixes |
exp-dhat/dh_main.c | printf 32/64 bit fixes |
exp-sgcheck/pc_common.c | printf 32/64 bit fixes |
exp-sgcheck/sg_main.c | printf 32/64 bit fixes |
lackey/lk_main.c | printf 32/64 bit fixes |
massif/ms_main.c | printf 32/64 bit fixes, preload-hack (see [#8]) |
memcheck/mc_errors.c | printf 32/64 bit fixes |
memcheck/mc_leakcheck.c | inhibit calls related to signal handling, printf 32/64 bit fixes |
memcheck/mc_main.c | printf 32/64 bit fixes, clo_workaround_gcc296_bugs defaults to True (see [#7]) |
memcheck/mc_malloc_wrappers.c | printf 32/64 bit fixes |
memcheck/mc_replace_strmem.c | replacements of wide character string functions; dll entry point |
tests/arch_test.c | Windows architectures support |
tests/malloc.h | Windows aligned alloc support |
tests/os_test.c | Windows platform support |
File | Purpose |
---|---|
.autotools | Eclipse project files |
.cproject | " |
.project | " |
.pydevroject | " |
.settings/org.eclipse.cdt.*.prefs | " |
coregrind/launcher-windows.c | Valgrind launcher |
coregrind/link_tool_exe_windows.in | Link script |
coregrind/m_aspacemgr/aspacemgr-windows.c | Windows-specific aspacemgr code |
coregrind/m_debuginfo/priv_readcv.h | Debugging |
coregrind/m_debuginfo/priv_readpe.h | " |
coregrind/m_debuginfo/priv_readpecoff.h | " |
coregrind/m_debuginfo/readcv.c | " |
coregrind/m_debuginfo/readpe.c | " |
coregrind/m_debuginfo/readpecoff.c | " |
coregrind/m_dispatch/dispatch-amd64-windows.S | Windows implementation (ported from and similar to Linux version) |
coregrind/m_dispatch/dispatch-x86-windows.S | Windows implementation (ported from and similar to Linux version) |
coregrind/m_initimg/initimg-windows.c | Create initial image on Windows |
coregrind/m_scheduler/sema-windows.c | Windows global lock implementation |
coregrind/m_syswrap/priv_syswrap-windows.h | Windows system call implementation |
coregrind/m_syswrap/syscall-amd64-windows.S | " |
coregrind/m_syswrap/syscall-x86-windows.S | " |
coregrind/m_syswrap/syswrap-amd64-windows.c | " |
coregrind/m_syswrap/syswrap-windows.c | " |
coregrind/m_syswrap/syswrap-x86-windows.c | " |
coregrind/m_windows/win-fault.c | fault handling |
coregrind/m_windows/win-main.c | main core initialization |
coregrind/m_windows/win-posix.c | POSIX emulation layer |
coregrind/m_windows/win-stacktrace.c | stack trace functions |
coregrind/m_windows/win-string.c | string functions |
coregrind/m_windows/win-syscall.c | auxiliary functions related to system calls |
coregrind/pub_core_win_aspacemgr.h | aspacemgr code |
coregrind/pub_core_win_dbghelp.h | definitions from dbghelp.h, can most likeley be eliminated once the tool does not depend on dbghelp |
coregrind/pub_core_win_fault.h | fault handling |
coregrind/pub_core_win_headers.h | central include for Windows headers |
coregrind/pub_core_win_helper.h | shared memory helper |
coregrind/pub_core_win_main.h | main core initialization |
coregrind/pub_core_win_posix.h | POSIX emulation layer |
coregrind/pub_core_win_syscall.h | auxiliary functions related to system calls |
coregrind/vg_preloaded-windows.c | Windows implementation |
include/vki/vki-windows.h | Windows-specific kernel interface |
memcheck/tests/windows/Makefile.am | Windows tests |
memcheck/tests/windows/hello.c | Console hello world program |
memcheck/tests/windows/hello_no_crt.c | Console hello world program (no CRT) |
memcheck/tests/windows/hellowin.c | GUI hello world program |
memcheck/tests/windows/memcheck.c | Test program for memcheck |
memcheck/tests/windows/threadtest.c | Simple threading test |
tests/windows/Makefile.am | Windows tests/utilities |
tests/windows/strace.c | Windows system call trace utility |
tests/windows/strace.h | " |
tests/windows/straceasm.S | " |
tests/windows/straceasm.h | " |
tests/windows/stracehook.c | " |
windows-msvcr.supp | Suppressions for Microsoft C libraries |
windows-system.supp | Suppressions for Windows system libraries |
windows/ReadMe32.txt | ReadMe file for installer package (32 bit version) |
windows/ReadMe64.txt | ReadMe file for installer package (64 bit version) |
windows/package32.cmd | script for creating installer package (32 bit version) |
windows/package64.cmd | script for creating installer package (64 bit version) |
windows/pysync.py | Tool for merging code changes between the original Valgrind and Valgrind for Windows |
windows/valcheck.sh | Tool for checking if binaries generated from Valgrind for Windows code are identical to the binaries generated from the original Valgrind code |
windows/valgrind4win32.nsi | NSIS script for creating installer package (32 bit version) |
windows/valgrind4win64.nsi | NSIS script for creating installer package (64 bit version) |
Tickets: #1
Tickets: #5
Tickets: #6
Tickets: #7
Tickets: #8
Wiki: AspaceManager
Wiki: CommitPolicy
Wiki: DevelopmentOverview
Wiki: Home