Author: planrich Branch: Changeset: r90875:eba581c00543 Date: 2017-03-30 18:54 +0000 http://bitbucket.org/pypy/pypy/changeset/eba581c00543/
Log: fix windows translation bug at the beginning diff --git a/rpython/rlib/rvmprof/cintf.py b/rpython/rlib/rvmprof/cintf.py --- a/rpython/rlib/rvmprof/cintf.py +++ b/rpython/rlib/rvmprof/cintf.py @@ -16,12 +16,13 @@ SRC = ROOT.join('src') SHARED = SRC.join('shared') BACKTRACE = SHARED.join('libbacktrace') -MSIINTTYPES = SHARED.join('msiinttypes') -extra_include_dirs = [] compile_extra = ['-DRPYTHON_VMPROF', '-O3'] +separate_module_files = [ + SHARED.join('symboltable.c') +] if sys.platform.startswith('linux'): - separate_module_files = [ + separate_module_files += [ BACKTRACE.join('backtrace.c'), BACKTRACE.join('state.c'), BACKTRACE.join('elf.c'), @@ -38,26 +39,24 @@ elif sys.platform == 'darwin': compile_extra += ['-DVMPROF_UNIX'] compile_extra += ['-DVMPROF_MAC'] - separate_module_files = [] _libs = [] else: # windows compile_extra += ['-DVMPROF_WINDOWS'] - extra_include_dirs += [MSIINTTYPES] separate_module_files = [SHARED.join('vmprof_main_win32.c')] _libs = [] eci_kwds = dict( - include_dirs = [SRC, SHARED, BACKTRACE] + extra_include_dirs, + include_dirs = [SRC, SHARED, BACKTRACE], includes = ['rvmprof.h','vmprof_stack.h'], libraries = _libs, separate_module_files = [ SRC.join('rvmprof.c'), SHARED.join('compat.c'), SHARED.join('machine.c'), - SHARED.join('symboltable.c'), SHARED.join('vmp_stack.c'), + # symbol table already in separate_module_files ] + separate_module_files, post_include_bits=[], compile_extra=compile_extra diff --git a/rpython/rlib/rvmprof/src/shared/vmp_stack.c b/rpython/rlib/rvmprof/src/shared/vmp_stack.c --- a/rpython/rlib/rvmprof/src/shared/vmp_stack.c +++ b/rpython/rlib/rvmprof/src/shared/vmp_stack.c @@ -49,9 +49,11 @@ PY_EVAL_RETURN_T * vmprof_eval(PY_STACK_FRAME_T *f, int throwflag) { return NULL; } #endif -static int vmp_native_traces_enabled = 0; +#ifdef VMP_SUPPORTS_NATIVE_PROFILING static intptr_t *vmp_ranges = NULL; static ssize_t vmp_range_count = 0; +static int vmp_native_traces_enabled = 0; +#endif static int _vmp_profiles_lines = 0; void vmp_profile_lines(int lines) { diff --git a/rpython/rlib/rvmprof/src/shared/vmprof.h b/rpython/rlib/rvmprof/src/shared/vmprof.h --- a/rpython/rlib/rvmprof/src/shared/vmprof.h +++ b/rpython/rlib/rvmprof/src/shared/vmprof.h @@ -70,4 +70,3 @@ #endif - diff --git a/rpython/rlib/rvmprof/src/shared/vmprof_common.h b/rpython/rlib/rvmprof/src/shared/vmprof_common.h --- a/rpython/rlib/rvmprof/src/shared/vmprof_common.h +++ b/rpython/rlib/rvmprof/src/shared/vmprof_common.h @@ -75,6 +75,7 @@ return "out of memory"; #if VMPROF_UNIX current_codes = NULL; + assert(fd >= 0); #else if (memory) { return "memory tracking only supported on unix"; @@ -83,7 +84,6 @@ return "native profiling only supported on unix"; } #endif - assert(fd >= 0); vmp_set_profile_fileno(fd); if (opened_profile(interp_name, memory, proflines, native) < 0) { vmp_set_profile_fileno(0); @@ -181,7 +181,8 @@ intptr_t *result_p, intptr_t result_length) { int n; -#ifdef _WIN32 + int enabled; +#ifdef VMPROF_WINDOWS intptr_t pc = 0; /* XXX implement me */ #else intptr_t pc = ucontext ? (intptr_t)GetPC((ucontext_t *)ucontext) : 0; @@ -189,7 +190,7 @@ if (stack == NULL) { stack = get_vmprof_stack(); } - int enabled = vmp_native_enabled(); + enabled = vmp_native_enabled(); vmp_native_disable(); n = get_stack_trace(stack, result_p, result_length - 2, pc); if (enabled) { diff --git a/rpython/rlib/rvmprof/src/shared/vmprof_get_custom_offset.h b/rpython/rlib/rvmprof/src/shared/vmprof_get_custom_offset.h --- a/rpython/rlib/rvmprof/src/shared/vmprof_get_custom_offset.h +++ b/rpython/rlib/rvmprof/src/shared/vmprof_get_custom_offset.h @@ -1,6 +1,10 @@ #pragma once +#ifdef VMPROF_WINDOWS +#include "msiinttypes/stdint.h" +#else #include <stdint.h> +#endif void *pypy_find_codemap_at_addr(long addr, long *start_addr); long pypy_yield_codemap_at_addr(void *codemap_raw, long addr, diff --git a/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.c b/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.c --- a/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.c +++ b/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.c @@ -18,6 +18,7 @@ { int res; int fd; + int count; res = WaitForSingleObject(write_mutex, INFINITE); fd = vmp_profile_fileno(); @@ -27,7 +28,7 @@ return -1; } while (bufsize > 0) { - ssize_t count = _write(fd, buf, (long)bufsize); + count = _write(fd, buf, (long)bufsize); if (count <= 0) { ReleaseMutex(write_mutex); return -1; /* failed */ diff --git a/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.h b/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.h --- a/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.h +++ b/rpython/rlib/rvmprof/src/shared/vmprof_main_win32.h @@ -19,7 +19,7 @@ int vmp_write_all(const char *buf, size_t bufsize); -#ifdef VMPROF_RPYTHON +#ifdef RPYTHON_VMPROF typedef struct pypy_threadlocal_s PY_WIN_THREAD_STATE; #else typedef PyThreadState PY_WIN_THREAD_STATE; @@ -89,7 +89,7 @@ #endif } -#ifdef RPYTHON_VMPROF +#ifndef RPYTHON_VMPROF static PY_WIN_THREAD_STATE * get_current_thread_state(void) { @@ -188,3 +188,16 @@ { enabled = !ignored; } + +int vmp_native_enable(void) { + return 0; +} + +void vmp_native_disable(void) { +} + +int get_stack_trace(PY_WIN_THREAD_STATE * current, void** result, + int max_depth, intptr_t pc) +{ + return 0; +} _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit