Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
394a36c2
Commit
394a36c2
authored
May 22, 2007
by
Peter Oberndorfer
Committed by
Alexandre Julliard
May 23, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedbg: Only check for break/watch points on first chance exceptions.
parent
0bfb26aa
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
6 deletions
+20
-6
break.c
programs/winedbg/break.c
+9
-2
debugger.h
programs/winedbg/debugger.h
+1
-1
tgt_active.c
programs/winedbg/tgt_active.c
+10
-3
No files found.
programs/winedbg/break.c
View file @
394a36c2
...
...
@@ -775,15 +775,22 @@ BOOL break_should_continue(ADDRESS64* addr, DWORD code)
}
/***********************************************************************
* break_ajust_pc
* break_a
d
just_pc
*
* Adjust PC to the address where the trap (if any) actually occurred
* Also sets dbg_curr_thread->stopped_xpoint
*/
void
break_adjust_pc
(
ADDRESS64
*
addr
,
DWORD
code
,
BOOL
*
is_break
)
void
break_adjust_pc
(
ADDRESS64
*
addr
,
DWORD
code
,
BOOL
first_chance
,
BOOL
*
is_break
)
{
DWORD
oldval
=
0
;
/* break / watch points are handled on first chance */
if
(
!
first_chance
)
{
*
is_break
=
TRUE
;
dbg_curr_thread
->
stopped_xpoint
=
-
1
;
return
;
}
*
is_break
=
FALSE
;
/* If not single-stepping, back up to the break instruction */
...
...
programs/winedbg/debugger.h
View file @
394a36c2
...
...
@@ -288,7 +288,7 @@ extern void break_delete_xpoint(int num);
extern
void
break_delete_xpoints_from_module
(
unsigned
long
base
);
extern
void
break_enable_xpoint
(
int
num
,
BOOL
enable
);
extern
void
break_info
(
void
);
extern
void
break_adjust_pc
(
ADDRESS64
*
addr
,
DWORD
code
,
BOOL
*
is_break
);
extern
void
break_adjust_pc
(
ADDRESS64
*
addr
,
DWORD
code
,
BOOL
first_chance
,
BOOL
*
is_break
);
extern
BOOL
break_should_continue
(
ADDRESS64
*
addr
,
DWORD
code
);
extern
void
break_suspend_execution
(
void
);
extern
void
break_restart_execution
(
int
count
);
...
...
programs/winedbg/tgt_active.c
View file @
394a36c2
...
...
@@ -107,7 +107,14 @@ static unsigned dbg_fetch_context(void)
return
TRUE
;
}
static
unsigned
dbg_exception_prolog
(
BOOL
is_debug
,
const
EXCEPTION_RECORD
*
rec
)
/***********************************************************************
* dbg_exception_prolog
*
* Examine exception and decide if interactive mode is entered(return TRUE)
* or exception is silently continued(return FALSE)
* is_debug means the exception is a breakpoint or single step exception
*/
static
unsigned
dbg_exception_prolog
(
BOOL
is_debug
,
BOOL
first_chance
,
const
EXCEPTION_RECORD
*
rec
)
{
ADDRESS64
addr
;
BOOL
is_break
;
...
...
@@ -143,7 +150,7 @@ static unsigned dbg_exception_prolog(BOOL is_debug, const EXCEPTION_RECORD* rec)
/* this will resynchronize builtin dbghelp's internal ELF module list */
SymLoadModule
(
dbg_curr_process
->
handle
,
0
,
0
,
0
,
0
,
0
);
if
(
is_debug
)
break_adjust_pc
(
&
addr
,
rec
->
ExceptionCode
,
&
is_break
);
if
(
is_debug
)
break_adjust_pc
(
&
addr
,
rec
->
ExceptionCode
,
first_chance
,
&
is_break
);
/*
* Do a quiet backtrace so that we have an idea of what the situation
* is WRT the source files.
...
...
@@ -398,7 +405,7 @@ static DWORD dbg_handle_exception(const EXCEPTION_RECORD* rec, BOOL first_chance
dbg_printf
(
", invalid program stack"
);
}
if
(
dbg_exception_prolog
(
is_debug
,
rec
))
if
(
dbg_exception_prolog
(
is_debug
,
first_chance
,
rec
))
{
dbg_interactiveP
=
TRUE
;
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment