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
82aa9210
Commit
82aa9210
authored
Nov 29, 2005
by
Eric Pouech
Committed by
Alexandre Julliard
Nov 29, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implemented SymGet{Next|Prev}Line64.
parent
8bd3c060
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
3 deletions
+90
-3
dbghelp.spec
dlls/dbghelp/dbghelp.spec
+3
-3
symbol.c
dlls/dbghelp/symbol.c
+74
-0
dbghelp.h
include/dbghelp.h
+13
-0
No files found.
dlls/dbghelp/dbghelp.spec
View file @
82aa9210
...
...
@@ -43,13 +43,13 @@
@ stub SymFunctionTableAccess64
@ stdcall SymFunctionTableAccess(long long)
@ stub SymGetFileLineOffsets64
@ st
ub SymGetLineFromAddr64
@ st
dcall SymGetLineFromAddr64(long double ptr ptr)
@ stdcall SymGetLineFromAddr(long long ptr ptr)
@ stub SymGetLineFromName64
@ stub SymGetLineFromName
@ st
ub SymGetLineNext64
@ st
dcall SymGetLineNext64(long ptr)
@ stdcall SymGetLineNext(long ptr)
@ st
ub SymGetLinePrev64
@ st
dcall SymGetLinePrev64(long ptr)
@ stdcall SymGetLinePrev(long ptr)
@ stub SymGetModuleBase64
@ stdcall SymGetModuleBase(long long)
...
...
dlls/dbghelp/symbol.c
View file @
82aa9210
...
...
@@ -1073,6 +1073,50 @@ BOOL WINAPI SymGetLineFromAddr(HANDLE hProcess, DWORD dwAddr,
}
/******************************************************************
* copy_line_64_from_32 (internal)
*
*/
static
void
copy_line_64_from_32
(
IMAGEHLP_LINE64
*
l64
,
const
IMAGEHLP_LINE
*
l32
)
{
l64
->
Key
=
l32
->
Key
;
l64
->
LineNumber
=
l32
->
LineNumber
;
l64
->
FileName
=
l32
->
FileName
;
l64
->
Address
=
l32
->
Address
;
}
/******************************************************************
* copy_line_32_from_64 (internal)
*
*/
static
void
copy_line_32_from_64
(
IMAGEHLP_LINE
*
l32
,
const
IMAGEHLP_LINE64
*
l64
)
{
l32
->
Key
=
l64
->
Key
;
l32
->
LineNumber
=
l64
->
LineNumber
;
l32
->
FileName
=
l64
->
FileName
;
l32
->
Address
=
l64
->
Address
;
}
/******************************************************************
* SymGetLineFromAddr64 (DBGHELP.@)
*
*/
BOOL
WINAPI
SymGetLineFromAddr64
(
HANDLE
hProcess
,
DWORD64
dwAddr
,
PDWORD
pdwDisplacement
,
PIMAGEHLP_LINE64
Line
)
{
IMAGEHLP_LINE
line32
;
if
(
Line
->
SizeOfStruct
<
sizeof
(
*
Line
))
return
FALSE
;
if
(
!
validate_addr64
(
dwAddr
))
return
FALSE
;
line32
.
SizeOfStruct
=
sizeof
(
line32
);
if
(
!
SymGetLineFromAddr
(
hProcess
,
(
DWORD
)
dwAddr
,
pdwDisplacement
,
&
line32
))
return
FALSE
;
copy_line_64_from_32
(
Line
,
&
line32
);
return
TRUE
;
}
/******************************************************************
* SymGetLinePrev (DBGHELP.@)
*
*/
...
...
@@ -1122,6 +1166,21 @@ BOOL WINAPI SymGetLinePrev(HANDLE hProcess, PIMAGEHLP_LINE Line)
return
FALSE
;
}
/******************************************************************
* SymGetLinePrev64 (DBGHELP.@)
*
*/
BOOL
WINAPI
SymGetLinePrev64
(
HANDLE
hProcess
,
PIMAGEHLP_LINE64
Line
)
{
IMAGEHLP_LINE
line32
;
line32
.
SizeOfStruct
=
sizeof
(
line32
);
copy_line_32_from_64
(
&
line32
,
Line
);
if
(
!
SymGetLinePrev
(
hProcess
,
&
line32
))
return
FALSE
;
copy_line_64_from_32
(
Line
,
&
line32
);
return
TRUE
;
}
BOOL
symt_get_func_line_next
(
struct
module
*
module
,
PIMAGEHLP_LINE
line
)
{
struct
line_info
*
li
;
...
...
@@ -1164,6 +1223,21 @@ BOOL WINAPI SymGetLineNext(HANDLE hProcess, PIMAGEHLP_LINE Line)
return
FALSE
;
}
/******************************************************************
* SymGetLineNext64 (DBGHELP.@)
*
*/
BOOL
WINAPI
SymGetLineNext64
(
HANDLE
hProcess
,
PIMAGEHLP_LINE64
Line
)
{
IMAGEHLP_LINE
line32
;
line32
.
SizeOfStruct
=
sizeof
(
line32
);
copy_line_32_from_64
(
&
line32
,
Line
);
if
(
!
SymGetLineNext
(
hProcess
,
&
line32
))
return
FALSE
;
copy_line_64_from_32
(
Line
,
&
line32
);
return
TRUE
;
}
/***********************************************************************
* SymFunctionTableAccess (DBGHELP.@)
*/
...
...
include/dbghelp.h
View file @
82aa9210
...
...
@@ -163,6 +163,15 @@ typedef struct _IMAGEHLP_LINE
DWORD
Address
;
}
IMAGEHLP_LINE
,
*
PIMAGEHLP_LINE
;
typedef
struct
_IMAGEHLP_LINE64
{
DWORD
SizeOfStruct
;
PVOID
Key
;
DWORD
LineNumber
;
PCHAR
FileName
;
DWORD64
Address
;
}
IMAGEHLP_LINE64
,
*
PIMAGEHLP_LINE64
;
typedef
struct
_SOURCEFILE
{
DWORD64
ModBase
;
...
...
@@ -779,8 +788,12 @@ typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(PSOURCEFILE, PVOID);
BOOL
WINAPI
SymEnumSourceFiles
(
HANDLE
,
ULONG64
,
LPSTR
,
PSYM_ENUMSOURCEFILES_CALLBACK
,
PVOID
);
BOOL
WINAPI
SymGetLineFromAddr
(
HANDLE
,
DWORD
,
PDWORD
,
PIMAGEHLP_LINE
);
BOOL
WINAPI
SymGetLineFromAddr64
(
HANDLE
,
DWORD64
,
PDWORD
,
PIMAGEHLP_LINE64
);
BOOL
WINAPI
SymGetLinePrev
(
HANDLE
,
PIMAGEHLP_LINE
);
BOOL
WINAPI
SymGetLinePrev64
(
HANDLE
,
PIMAGEHLP_LINE64
);
BOOL
WINAPI
SymGetLineNext
(
HANDLE
,
PIMAGEHLP_LINE
);
BOOL
WINAPI
SymGetLineNext64
(
HANDLE
,
PIMAGEHLP_LINE64
);
typedef
struct
_SRCCODEINFO
{
DWORD
SizeOfStruct
;
...
...
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