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
829c0674
Commit
829c0674
authored
Nov 17, 2021
by
Jinoh Kang
Committed by
Alexandre Julliard
Nov 17, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedbg: Report current thread ID to GDB for all stop replies.
Signed-off-by:
Jinoh Kang
<
jinoh.kang.kr@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
74a381aa
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
7 deletions
+18
-7
gdbproxy.c
programs/winedbg/gdbproxy.c
+18
-7
No files found.
programs/winedbg/gdbproxy.c
View file @
829c0674
...
...
@@ -867,6 +867,22 @@ static void packet_reply_status_xpoints(struct gdb_context* gdbctx, struct dbg_t
}
}
static
void
packet_reply_begin_stop_reply
(
struct
gdb_context
*
gdbctx
,
unsigned
char
signal
)
{
packet_reply_add
(
gdbctx
,
"T"
);
packet_reply_val
(
gdbctx
,
signal
,
1
);
/* We should always report the current thread ID for all stop replies.
* Otherwise, GDB complains with the following message:
*
* Warning: multi-threaded target stopped without sending a thread-id,
* using first non-exited thread
*/
packet_reply_add
(
gdbctx
,
"thread:"
);
packet_reply_val
(
gdbctx
,
gdbctx
->
de
.
dwThreadId
,
4
);
packet_reply_add
(
gdbctx
,
";"
);
}
static
enum
packet_return
packet_reply_status
(
struct
gdb_context
*
gdbctx
)
{
struct
dbg_process
*
process
=
gdbctx
->
process
;
...
...
@@ -885,11 +901,7 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx)
return
packet_error
;
packet_reply_open
(
gdbctx
);
packet_reply_add
(
gdbctx
,
"T"
);
packet_reply_val
(
gdbctx
,
signal_from_debug_event
(
&
gdbctx
->
de
),
1
);
packet_reply_add
(
gdbctx
,
"thread:"
);
packet_reply_val
(
gdbctx
,
gdbctx
->
de
.
dwThreadId
,
4
);
packet_reply_add
(
gdbctx
,
";"
);
packet_reply_begin_stop_reply
(
gdbctx
,
signal_from_debug_event
(
&
gdbctx
->
de
));
packet_reply_status_xpoints
(
gdbctx
,
thread
,
&
ctx
);
for
(
i
=
0
;
i
<
backend
->
gdb_num_regs
;
i
++
)
...
...
@@ -913,8 +925,7 @@ static enum packet_return packet_reply_status(struct gdb_context* gdbctx)
case
LOAD_DLL_DEBUG_EVENT
:
case
UNLOAD_DLL_DEBUG_EVENT
:
packet_reply_open
(
gdbctx
);
packet_reply_add
(
gdbctx
,
"T"
);
packet_reply_val
(
gdbctx
,
HOST_SIGTRAP
,
1
);
packet_reply_begin_stop_reply
(
gdbctx
,
HOST_SIGTRAP
);
packet_reply_add
(
gdbctx
,
"library:;"
);
packet_reply_close
(
gdbctx
);
return
packet_done
;
...
...
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