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
b6205f57
Commit
b6205f57
authored
Nov 18, 2022
by
Eric Pouech
Committed by
Alexandre Julliard
Nov 18, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Add partial implementation of SymQueryInlineTrace.
Signed-off-by:
Eric Pouech
<
eric.pouech@gmail.com
>
parent
c99bafb7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
50 additions
and
1 deletion
+50
-1
dbghelp.spec
dlls/dbghelp/dbghelp.spec
+1
-1
symbol.c
dlls/dbghelp/symbol.c
+49
-0
No files found.
dlls/dbghelp/dbghelp.spec
View file @
b6205f57
...
...
@@ -153,7 +153,7 @@
@ stub SymNextW
@ stub SymPrev
@ stub SymPrevW
@ st
ub SymQueryInlineTrace
@ st
dcall SymQueryInlineTrace(long int64 long int64 int64 ptr ptr)
@ stdcall SymRefreshModuleList(long)
@ stdcall SymRegisterCallback(long ptr ptr)
@ stdcall SymRegisterCallback64(long ptr int64)
...
...
dlls/dbghelp/symbol.c
View file @
b6205f57
...
...
@@ -2804,6 +2804,55 @@ DWORD WINAPI SymAddrIncludeInlineTrace(HANDLE hProcess, DWORD64 addr)
}
/******************************************************************
* SymQueryInlineTrace (DBGHELP.@)
*
*/
BOOL
WINAPI
SymQueryInlineTrace
(
HANDLE
hProcess
,
DWORD64
StartAddress
,
DWORD
StartContext
,
DWORD64
StartRetAddress
,
DWORD64
CurAddress
,
LPDWORD
CurContext
,
LPDWORD
CurFrameIndex
)
{
struct
module_pair
pair
;
struct
symt_ht
*
sym_curr
;
struct
symt_ht
*
sym_start
;
struct
symt_ht
*
sym_startret
;
DWORD
depth
;
TRACE
(
"(%p, %#I64x, 0x%lx, %#I64x, %I64x, %p, %p)
\n
"
,
hProcess
,
StartAddress
,
StartContext
,
StartRetAddress
,
CurAddress
,
CurContext
,
CurFrameIndex
);
if
(
!
module_init_pair
(
&
pair
,
hProcess
,
CurAddress
))
return
FALSE
;
if
(
!
(
sym_curr
=
symt_find_symbol_at
(
pair
.
effective
,
CurAddress
)))
return
FALSE
;
if
(
!
symt_check_tag
(
&
sym_curr
->
symt
,
SymTagFunction
))
return
FALSE
;
sym_start
=
symt_find_symbol_at
(
pair
.
effective
,
StartAddress
);
sym_startret
=
symt_find_symbol_at
(
pair
.
effective
,
StartRetAddress
);
if
(
sym_start
!=
sym_curr
&&
sym_startret
!=
sym_curr
)
{
SetLastError
(
ERROR_INVALID_PARAMETER
);
return
FALSE
;
}
if
(
sym_start
!=
sym_curr
||
StartContext
)
{
FIXME
(
"(%p, %#I64x, 0x%lx, %#I64x, %I64x, %p, %p): semi-stub
\n
"
,
hProcess
,
StartAddress
,
StartContext
,
StartRetAddress
,
CurAddress
,
CurContext
,
CurFrameIndex
);
return
ERROR_CALL_NOT_IMPLEMENTED
;
}
depth
=
SymAddrIncludeInlineTrace
(
hProcess
,
CurAddress
);
if
(
depth
)
{
*
CurContext
=
IFC_MODE_INLINE
;
/* deepest inline site */
*
CurFrameIndex
=
depth
;
}
else
{
*
CurContext
=
IFC_MODE_REGULAR
;
*
CurFrameIndex
=
0
;
}
return
TRUE
;
}
/******************************************************************
* SymSrvGetFileIndexInfo (DBGHELP.@)
*
*/
...
...
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