summaryrefslogtreecommitdiffstats
path: root/src/PEImage.cpp
diff options
context:
space:
mode:
authorRainer Schuetze <r.sagitario@gmx.de>2018-12-12 07:37:42 (GMT)
committerRainer Schuetze <r.sagitario@gmx.de>2018-12-12 07:37:42 (GMT)
commitad510831cafa07d45d973e5fc941c62b9d8946f9 (patch)
tree97c0a9ef52c2d663e0a7581fc0158f895e0ac575 /src/PEImage.cpp
parent6af8029154cd76b998d3be2fe59c461295eef0e9 (diff)
downloadcv2pdb-ad510831cafa07d45d973e5fc941c62b9d8946f9.zip
cv2pdb-ad510831cafa07d45d973e5fc941c62b9d8946f9.tar.gz
cv2pdb-ad510831cafa07d45d973e5fc941c62b9d8946f9.tar.bz2
fix #40: set architecture of .pdb for a 64 bit .dbg
Diffstat (limited to 'src/PEImage.cpp')
-rw-r--r--src/PEImage.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/PEImage.cpp b/src/PEImage.cpp
index 644f36e..d3651c8 100644
--- a/src/PEImage.cpp
+++ b/src/PEImage.cpp
@@ -54,6 +54,7 @@ PEImage::PEImage(const TCHAR* iname)
, strtable(0)
, bigobj(false)
, dbgfile(false)
+, x64(false)
{
if(iname)
loadExe(iname);
@@ -266,6 +267,7 @@ bool PEImage::initCVPtr(bool initDbgDir)
hdr32 = 0;
else
hdr64 = 0;
+ x64 = hdr64 != nullptr;
if(IMGHDR(Signature) != IMAGE_NT_SIGNATURE)
return setError("optional header does not have PE signature");
@@ -324,6 +326,7 @@ bool PEImage::initDbgPtr(bool initDbgDir)
if(dbg->DebugDirectorySize <= IMAGE_DIRECTORY_ENTRY_DEBUG)
return setError("too few entries in data directory");
+ x64 = dbg->Machine == IMAGE_FILE_MACHINE_AMD64 || dbg->Machine == IMAGE_FILE_MACHINE_IA64;
dbgfile = true;
dbgDir = 0;
dirHeader = 0;
@@ -389,6 +392,7 @@ bool PEImage::initDWARFPtr(bool initDbgDir)
hdr32 = 0;
else
hdr64 = 0;
+ x64 = hdr64 != nullptr;
if(IMGHDR(Signature) != IMAGE_NT_SIGNATURE)
return setError("optional header does not have PE signature");