#include "LEB128.h"\r
#include "DWARFManager.h"\r
\r
-\r
// Definitions for debugging\r
//#define DEBUG_NumCU 0x3 // CU number to debug or undefine it\r
//#define DEBUG_VariableName "sound_death" // Variable name to look for or undefine it\r
CUStruct_LineSrc *PtrUsedLinesSrc; // Pointer to the used source lines list structure\r
char **PtrUsedLinesLoadSrc; // Pointer lists to each used source line referenced by the CUStruct_LineSrc structure\r
size_t *PtrUsedNumLines; // List of the number lines used\r
- struct _stat _statbuf; // File information\r
+ struct stat _statbuf; // File information\r
DWARFstatus Status; // File status\r
}S_CUStruct;\r
\r
CUStruct *PtrCU;\r
char **ListSearchPaths;\r
size_t NbSearchPaths;\r
-struct _stat FileElfExeInfo;\r
+struct stat FileElfExeInfo;\r
\r
\r
//\r
\r
\r
// Dwarf manager Elf init\r
-int DWARFManager_ElfInit(Elf *ElfPtr, struct _stat FileElfInfo)\r
+int DWARFManager_ElfInit(Elf *ElfPtr, struct stat FileElfInfo)\r
{\r
if ((LibDwarf = dwarf_elf_init(ElfPtr, DW_DLC_READ, (Dwarf_Handler)DWARFManager_ErrorHandler, errarg, &dbg, &error)) == DW_DLV_OK)\r
{\r
PtrCU[NbCU].PtrFullFilename = (char *)realloc(PtrCU[NbCU].PtrFullFilename, strlen(PtrCU[NbCU].PtrSourceFilename) + strlen((const char *)ListSearchPaths[i]) + 2);\r
#if defined(_WIN32)\r
sprintf(PtrCU[NbCU].PtrFullFilename, "%s\\%s", ListSearchPaths[i], PtrCU[NbCU].PtrSourceFilename);\r
+ if (!fopen_s(&SrcFile, PtrCU[NbCU].PtrFullFilename, "rb"))\r
#else\r
sprintf(PtrCU[NbCU].PtrFullFilename, "%s/%s", ListSearchPaths[i], PtrCU[NbCU].PtrSourceFilename);\r
+ SrcFile = fopen(PtrCU[NbCU].PtrFullFilename, "rb");\r
+ if (SrcFile == NULL)\r
#endif\r
- if (!fopen_s(&SrcFile, PtrCU[NbCU].PtrFullFilename, "rb"))\r
{\r
PtrCU[NbCU].PtrSourceFileDirectory = (char *)realloc(PtrCU[NbCU].PtrSourceFileDirectory, strlen(ListSearchPaths[i]) + 1);\r
strcpy(PtrCU[NbCU].PtrSourceFileDirectory, ListSearchPaths[i]);\r
}\r
\r
// Get the source file information\r
- if (!_stat(PtrCU[NbCU].PtrFullFilename, &PtrCU[NbCU]._statbuf))\r
+ if (!stat(PtrCU[NbCU].PtrFullFilename, &PtrCU[NbCU]._statbuf))\r
{\r
// check the time stamp with the executable\r
if (PtrCU[NbCU]._statbuf.st_mtime <= FileElfExeInfo.st_mtime)\r
{\r
// Open the source file as a binary file\r
+#if defined(_WIN32)\r
if (!fopen_s(&SrcFile, PtrCU[NbCU].PtrFullFilename, "rb"))\r
+#else\r
+ SrcFile = fopen(PtrCU[NbCU].PtrFullFilename, "rb");\r
+ if (SrcFile == NULL)\r
+#endif\r
{\r
if (!fseek(SrcFile, 0, SEEK_END))\r
{\r
if (PtrCU[NbCU].PtrLoadSrc = Ptr = Ptr1 = (char *)calloc(1, (PtrCU[NbCU].SizeLoadSrc + 2)))\r
{\r
// Read whole file\r
+#if defined(_WIN32) \r
if (fread_s(PtrCU[NbCU].PtrLoadSrc, PtrCU[NbCU].SizeLoadSrc, PtrCU[NbCU].SizeLoadSrc, 1, SrcFile) != 1)\r
+#else\r
+ if (fread(PtrCU[NbCU].PtrLoadSrc, PtrCU[NbCU].SizeLoadSrc, 1, SrcFile) != 1)\r
+#endif\r
{\r
free(PtrCU[NbCU].PtrLoadSrc);\r
PtrCU[NbCU].PtrLoadSrc = NULL;\r