based on patches by Colin Western, mantis #38483)
o requires that the program/library is compiled with -Xg (or that
dsymutil is run on it after compiling), and that the .dSYM bundle
is in the same directory as the program/library
o always use the "dl" unit in exeinfo for Darwin, as that's needed for
dynamic library support, and this does not cause an extra dependency
since on Darwin we always use libc
o cleaned up the exeinfo unit for Darwin, and sped it up by using mmap
instead of small reads
o fixed unit dependencies for exeinfo, lineinfo and lnfodwarf in Darwin
RTL Makefile
* use the process address info from the original exe even when reading
the debug information from an external file
- removed outdated ifdef'd darwin code from dl.pp (no longer needed now
that processaddress gets set correctly in exeinfo for that platform)
git-svn-id: trunk@49140 -
memory models and we only need the offset; the segment is tracked separately)
+ introduce texefile.processsegment on i8086
* initialize processaddress and processsegment properly on i8086-msdos (for .exe
files; .com files are not supported yet)
git-svn-id: trunk@39052 -
will be useful for reading i8086-msdos dwarf debug info, because it is
appended after the regular dos MZ exe in an ELF32 image by the watcom linker.
git-svn-id: trunk@39030 -
especially when exeinfo unit is implicitly loaded when -gl compilation option
is used.
+ LocalError, new ExitProc procedure, used to catch any error that could happen
inside GetExeInMemoryBaseAddr procedure.
* Use SetJmp/LongJmp instead of Try/except in GetExeInMemoryBaseAddr function,
together with local change and restoration of ExitProc.
git-svn-id: trunk@33561 -
* Obtain a real processaddress for ELF images by OpenExeFile() instead of hard-coded 0.
* It fixes line info information for Position Independent Executables (PIE).
git-svn-id: trunk@32052 -
* exeinfo: Properly handle long COFF section names. Bug #13499.
* lineinfo, lnfodwrf: Properly use executable image base and current module base address.
git-svn-id: trunk@13145 -
* When OpenExeFile is called with an empty filename argument,
it apparently opens stdin and crashes immediately thereafter trying to seek in non-seekable stream.
The filename is empty whenever GetLineInfo is called with the address that does not belong to valid module.
git-svn-id: trunk@12802 -