Menu

CreatedAndModifiedFiles

Christoph Schwarz

Files

The Windows port adds and modifies the following files:

Modified 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

New files

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)

Related

Tickets: #1
Tickets: #5
Tickets: #6
Tickets: #7
Tickets: #8
Wiki: AspaceManager
Wiki: CommitPolicy
Wiki: DevelopmentOverview
Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.