Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
219e4b6e
Commit
219e4b6e
authored
Oct 26, 2021
by
Eric Pouech
Committed by
Alexandre Julliard
Oct 27, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Implement SymFromInlineContext() when context isn't in inline mode.
Signed-off-by:
Eric Pouech
<
eric.pouech@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
2a049574
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
3 deletions
+33
-3
dbghelp_private.h
dlls/dbghelp/dbghelp_private.h
+21
-0
symbol.c
dlls/dbghelp/symbol.c
+12
-3
No files found.
dlls/dbghelp/dbghelp_private.h
View file @
219e4b6e
...
...
@@ -845,3 +845,24 @@ extern struct symt_pointer*
extern
struct
symt_typedef
*
symt_new_typedef
(
struct
module
*
module
,
struct
symt
*
ref
,
const
char
*
name
)
DECLSPEC_HIDDEN
;
/* Inline context encoding (different from what native does):
* bits 31:30: 3 ignore (includes INLINE_FRAME_CONTEXT_IGNORE=0xFFFFFFFF)
* 2 regular frame
* 1 frame with inlined function(s).
* 0 init (includes INLINE_FRAME_CONTEXT_INIT=0)
* so either stackwalkex is called with:
* - inlinectx=IGNORE, and we use (old) StackWalk64 behavior:
* - inlinectx=INIT, and StackWalkEx will upon return swing back&forth between:
* INLINE when the frame is from an inline site (inside a function)
* REGULAR when the frame is for a function without inline site
* bits 29:00 depth of inline site (way too big!!)
* 0 being the lowest inline site
*/
#define IFC_MODE_IGNORE 0xC0000000
#define IFC_MODE_REGULAR 0x80000000
#define IFC_MODE_INLINE 0x40000000
#define IFC_MODE_INIT 0x00000000
#define IFC_DEPTH_MASK 0x3FFFFFFF
#define IFC_MODE(x) ((x) & ~IFC_DEPTH_MASK)
#define IFC_DEPTH(x) ((x) & IFC_DEPTH_MASK)
dlls/dbghelp/symbol.c
View file @
219e4b6e
...
...
@@ -2497,9 +2497,18 @@ PWSTR WINAPI SymSetHomeDirectoryW(HANDLE hProcess, PCWSTR dir)
*/
BOOL
WINAPI
SymFromInlineContext
(
HANDLE
hProcess
,
DWORD64
addr
,
ULONG
inline_ctx
,
PDWORD64
disp
,
PSYMBOL_INFO
si
)
{
FIXME
(
"(%p, %#I64x, 0x%x, %p, %p): stub
\n
"
,
hProcess
,
addr
,
inline_ctx
,
disp
,
si
);
SetLastError
(
ERROR_CALL_NOT_IMPLEMENTED
);
return
FALSE
;
TRACE
(
"(%p, %#I64x, 0x%x, %p, %p)
\n
"
,
hProcess
,
addr
,
inline_ctx
,
disp
,
si
);
switch
(
IFC_MODE
(
inline_ctx
))
{
case
IFC_MODE_IGNORE
:
case
IFC_MODE_REGULAR
:
return
SymFromAddr
(
hProcess
,
addr
,
disp
,
si
);
case
IFC_MODE_INLINE
:
default:
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
}
/******************************************************************
...
...
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