Alexandre Julliard : server: Fix sharing parameters for debug event files, and don't fail if the file can't be opened.
Alexandre Julliard
julliard at winehq.org
Tue Apr 19 12:08:17 CDT 2011
Module: wine
Branch: master
Commit: 1b868f4967f2dadd1d12b2b0fc5a14f9c5766ab4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1b868f4967f2dadd1d12b2b0fc5a14f9c5766ab4
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Apr 19 10:29:44 2011 +0200
server: Fix sharing parameters for debug event files, and don't fail if the file can't be opened.
---
server/debugger.c | 26 ++++++++++----------------
1 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/server/debugger.c b/server/debugger.c
index c693c7d..2ee6f6d 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -155,18 +155,8 @@ static int fill_create_process_event( struct debug_event *event, const void *arg
close_handle( debugger, event->data.create_process.process );
return 0;
}
- event->data.create_process.thread = handle;
-
- handle = 0;
- if (exe_module->mapping &&
- /* the doc says write access too, but this doesn't seem a good idea */
- !(handle = open_mapping_file( debugger, exe_module->mapping, GENERIC_READ, 0 )))
- {
- close_handle( debugger, event->data.create_process.process );
- close_handle( debugger, event->data.create_process.thread );
- return 0;
- }
- event->data.create_process.file = handle;
+ event->data.create_process.thread = handle;
+ event->data.create_process.file = 0;
event->data.create_process.teb = thread->teb;
event->data.create_process.base = exe_module->base;
event->data.create_process.start = *entry;
@@ -174,6 +164,10 @@ static int fill_create_process_event( struct debug_event *event, const void *arg
event->data.create_process.dbg_size = exe_module->dbg_size;
event->data.create_process.name = exe_module->name;
event->data.create_process.unicode = 1;
+
+ if (exe_module->mapping) /* the doc says write access too, but this doesn't seem a good idea */
+ event->data.create_process.file = open_mapping_file( debugger, exe_module->mapping, GENERIC_READ,
+ FILE_SHARE_READ | FILE_SHARE_WRITE );
return 1;
}
@@ -195,16 +189,16 @@ static int fill_load_dll_event( struct debug_event *event, const void *arg )
{
struct process *debugger = event->debugger->process;
const struct process_dll *dll = arg;
- obj_handle_t handle = 0;
- if (dll->mapping && !(handle = open_mapping_file( debugger, dll->mapping, GENERIC_READ, 0 )))
- return 0;
- event->data.load_dll.handle = handle;
+ event->data.load_dll.handle = 0;
event->data.load_dll.base = dll->base;
event->data.load_dll.dbg_offset = dll->dbg_offset;
event->data.load_dll.dbg_size = dll->dbg_size;
event->data.load_dll.name = dll->name;
event->data.load_dll.unicode = 1;
+ if (dll->mapping)
+ event->data.load_dll.handle = open_mapping_file( debugger, dll->mapping, GENERIC_READ,
+ FILE_SHARE_READ | FILE_SHARE_WRITE );
return 1;
}
More information about the wine-cvs
mailing list