andremussche / map2dbg Goto Github PK
View Code? Open in Web Editor NEWConverts .map files (Delphi, CBuilder) to Microsoft .dbg files. Also .tds to .pdb conversion works now!
Home Page: https://code.google.com/p/map2dbg/
Converts .map files (Delphi, CBuilder) to Microsoft .dbg files. Also .tds to .pdb conversion works now!
Home Page: https://code.google.com/p/map2dbg/
According to the CV spec, the module name in the sstModule record is an OMFNAME
(i.e. a length-prefixed string). Because map2dbg writes a zero-terminated one,
this causes produced files to be not accepted by IDA (it interprets the first
character as the string length which obviously runs out over the record
boundary.
We (Hex-Rays) will add a workaround to handle this for already produced files,
but I think this should still be fixed.
Original issue reported on code.google.com by [email protected]
on 29 Oct 2013 at 12:45
Using version map2dbg 1.3. I would expect to be able to discover the
version easily. Two ways would be desirable:
1. The file version in the executable header (so it can be viewed in
Explorer, etc.)
2. A version output option.
Original issue reported on code.google.com by [email protected]
on 19 Mar 2010 at 2:26
What steps will reproduce the problem?
1. Start map2dbg.exe or calldemo.exe
I have current no Borland runtime files on my system. But i like to use the
Programm for a other symbole source.
Original issue reported on code.google.com by [email protected]
on 4 Jan 2009 at 12:58
Encountered the error
crossing section alignment boundary, relocation required, not implemented
when converting a TDS generated by Delphi 10.3.1
When trying to convert a TDS generated by Delphi XE 10.3.1, I get
Warning: Name cannot be parsed: System@Generics@Collections@%TEnumerable__1$pqqrx20System@UnicodeString$p25System@Classes@TComponent%@$bdtr$qqrv
Please consider updating this project to support generics and anonymous methods.
Create empty console application (e.g. Project5) with .tds in separate file.
tds2pdb103 output:
Warning: Name cannot be parsed: System@Sysutils@TLanguages@$bcctr$qqrv
Warning: Name cannot be parsed: System@Sysutils@TOSVersion@$bcdtr$qqrv
Warning: Name cannot be parsed: System@Sysutils@Exception@$bcctr$qqrv
Warning: Name cannot be parsed: System@Sysutils@Exception@$bcdtr$qqrv
Warning: Name cannot be parsed: System@Sysutils@TLanguages@$bcdtr$qqrv
Warning: Name cannot be parsed: System@Sysutils@TOSVersion@$bcctr$qqrv
Warning: Name cannot be parsed: System@Sysutils@TLanguages@$ClassInitFlag
Warning: Name cannot be parsed: System@Sysutils@Exception@$ClassInitFlag
Warning: Name cannot be parsed: System@Sysutils@TOSVersion@$ClassInitFlag
Warning: Name cannot be parsed: Project5@TLanguages@$bcctr$qqrv
Warning: Name cannot be parsed: Project5@TOSVersion@$bcdtr$qqrv
Warning: Name cannot be parsed: Project5@Exception@$bcctr$qqrv
Warning: Name cannot be parsed: Project5@Exception@$bcdtr$qqrv
Warning: Name cannot be parsed: Project5@TLanguages@$bcdtr$qqrv
Warning: Name cannot be parsed: Project5@TOSVersion@$bcctr$qqrv
Error: crossing section alignment boundary, relocation required, not implemented
Error - is fatal or not?
Original issue reported on code.google.com by [email protected]
on 15 Nov 2012 at 11:06
When used with very large projects, an out of range error is displayed and the program stops.
This can be fixed easily, however, by changing most short to ushort in program.cs and recompiling.
Is there any chance that you'd be able to add a licence file to this project so that I know if I'm allowed to fork it, and under what conditions?
What steps will reproduce the problem?
1. Note date last modified of and generate Hash of target .exe/.dll
2. Run Map2Dbg from either of those two versions I tried
3. Note date last modified changed and if you re-gen hash of original
.exe/.dll, the hash value is different
What is the expected output? What do you see instead?
I expected simply converting the .MAP to leave the binary itself alone.
Instead the actual content of a byte in the target .EXE with an offset around
117 (in the first .EXE I tried with v1.3) actually changed
What version of the product are you using? On what operating system?
1.3 and 1.4. Win7x64
Please provide any additional information below.
We are trying to use this in an automated dump processing scenario. There is
no direct way to guarantee you're using the exact match .MAP for any given
.exe/.dll binary. The only things you can go by are names and dates. We need
hash the binary, hash the .MAP, generate the .DBG, and retain renamed copies of
all three with the new names as (for "OriginalName.exe")
"OriginalName_HashValue.exe", "OriginalName_HashValue.map", and
"OriginalName_HashValue.dbg"
We need to be able to pull a problem binary from a server, hash it, and then
use that has to be absolutely certain we had the appropriate .MAP and .DBG. But
since Map2Dbg here off of GoogleCode actually changes the .EXE, that complicate
matching everything up; particularly if you ever re-run the Map2Dbg. There is
zero justification for a symbol conversion to change the actual binary, but it
does.
Original issue reported on code.google.com by [email protected]
on 2 Apr 2014 at 3:00
What steps will reproduce the problem?
1. First i create a TDS from my DLL using:
C:\tds2pdb>tdstrp32.exe -s d:\MySuper.dll
2. Then i want to convert the TDS to PDB using:
C:\tds2pdb>tds2pdbproto.exe d:\MySuper.TDS
3. I expect a PDB file to be created, but i see this exception:
Unhandled Exception: System.ArgumentException: An entry with the same key
already exists.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.SortedList`2.Add(TKey key, TValue value)
at tds2pdbproto.PdbWriter.WritePdb(List`1 tglobals, ModuleInfo[] modules, String pdbname, String exename) in \\vmware-host\Shared Folders\C\-Andre-\-Projects-\
pdbstuff\tds2pdb\tds2pdbproto\PdbWriter.cs:line 1342
at tds2pdbproto.Program.Main(String[] args) in \\vmware-host\Shared Folders\C\-Andre-\-Projects-\pdbstuff\tds2pdb\tds2pdbproto\Program.cs:line 2090
Windows XP
Original issue reported on code.google.com by [email protected]
on 18 Jun 2012 at 1:20
Hi,
First thank you for this tool which looks really promising.
I use it to generate PDB files for my binaries in order to have valid stack
traces under WinDBG.
First remark - it does not seems to like DLL files : I got the following fatal
error when trying to produce a PDB file from a FILENAME.DLL :
Exception non gérée : System.IO.FileNotFoundException: Impossible de trouver
le fichier 'c:\PATH\FILENAME.exe'.
Nom du fichier : 'c:\PATH\FILENAME.exe'
à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, In
t32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions op
tions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, F
ileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean b
FromProxy)
à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, F
ileShare share)
à System.IO.File.Open(String path, FileMode mode, FileAccess access)
à pdbbind.PdbBind.Bind(String exefname, String pdbfname, Int32 timestamp, Gui
d guid, Int32 age)
à tds2pdbproto.PdbWriter.WritePdb(List`1 tglobals, ModuleInfo[] modules, Stri
ng pdbname, String exename)
à tds2pdbproto.Program.Main(String[] args)
(basically, it says in French that it cannot find FILENAME.EXE instead of
searching for FILENAME.DLL).
Well, it seems that using the ".EXE" extension for the library file worked. But
for some files the program crashes with the following stack trace :
Exception non gérée : System.IndexOutOfRangeException: L'index se trouve en
dehors des limites du tableau.
à pdbbind.PdbBind.Bind(String exefname, String pdbfname, Int32 timestamp, Gui
d guid, Int32 age)
à tds2pdbproto.PdbWriter.WritePdb(List`1 tglobals, ModuleInfo[] modules, Stri
ng pdbname, String exename)
à tds2pdbproto.Program.Main(String[] args)
I was wondering if you're aware of this issue and if I could help you to fix it.
Thanks.
Adrien
Original issue reported on code.google.com by adrien.reboisson
on 10 May 2012 at 12:12
Ran tds2pdb dscdatasrv.tds
The .pdb file was created but not sure if it's complete/correct/usable.
Version of tds2pdb is 1.0.1.1 dated 5/22/12 (tds2pdb102.zip).
OS: Win XP SP3
Error info:
C:\Win_proj\Source34_Rebuild_3.4.32\DSCDataSrv>tds2pdb dscdatasrv.tds
Error: .rdata section not found
Original issue reported on code.google.com by [email protected]
on 23 May 2012 at 5:19
Attachments:
Hi,
to start with i dont really know that much about the inner workings of the tds.
My problem is that i get a KeyNotFoundException from scoped.Parent =
offsetToSymInfo[scopeparent] some times when using tds2pdb 103. The key in my
case being 11790 (though i doubt that is saying much...). In later iterations
of the ParseSymbols method the key appears. Now as i said i dont know much
about the tds and i dont know how this key-pair-matching of symbols is all
connected. If you could give me some hints (or some place this stuff is
documented) that would be great. Then i could have a look and try to figure out
whats going on.
Also, not sure if they are connected but i get alot of:
Warning: Name cannot be parsed: " + strname + " possible reason - incomplete
See attached file for exact messages.
Not sure what info to give you, i'm a bit reluctant to upload the dll rigth
now. But if that is the only solution...
What version of the product are you using? On what operating system?
tds2pdb 103 on win7 64
thanks for a good work (the map2pdb works - though from what i understand tds
is more detailed which it seems that i need)!
best regards
/Erik
Original issue reported on code.google.com by [email protected]
on 26 Jan 2015 at 3:29
Attachments:
Visual Studio 2005 refuses to load the .dbg file generated by map2dbg. The
module list shows "Binary was not built with debug information" in the
"Symbol status" column.
Could this be because the EXE file is lacking a debug directory?
Original issue reported on code.google.com by thecybershadow
on 2 Nov 2009 at 10:34
Ran tds2pdb dscdatasrv.tds
Expected .pdb file but got runtime error instead.
Version of tds2pdb is 1.0.1.1 dated 5/11/12.
OS: Win XP SP3
Error info:
C:\Win_proj\Source34_Rebuild_3.4.32\DSCDataSrv>tds2pdb dscdatasrv.tds
Unhandled Exception: System.ArgumentException: An entry with the same key
already exists.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)+
at System.Collections.Generic.SortedList`2.Add(TKey key, TValue value)+
at tds2pdbproto.PdbWriter.WritePdb(List`1 tglobals, ModuleInfo[] modules,
String pdbname, String exename) in
C:\-Andre-\-Projects-\map2dbg\tds2pdb\tds2pdbpro
to\PdbWriter.cs:line 1342
at tds2pdbproto.Program.Main(String[] args) in C:\-Andre-\-Projects-\map2dbg\
tds2pdb\tds2pdbproto\Program.cs:line 2101
Can you also provide some details as what I should be running and in what
sequence? I'm thinking that I might be doing something wrong.
Original issue reported on code.google.com by [email protected]
on 21 May 2012 at 7:05
Attachments:
What steps will reproduce the problem?
1. Add the attached file to a Console project in C++ builder 2010
2. Compile the project with debug info added
3. Run tds2pdb on the tds file, and a pdb be will be cleanly generated, and the
resulting executable debugs fine in WinDbg, (good stack information and the
disassembler works correctly)
4. Remove the comment on line 37 and rebuild the code
5. run tds2pdb on the tds file, and hundreds of errors will be generated
related to the STL map reference.
What is the expected output? What do you see instead?
I expect there not to be any errors. If these are ignorable warnings it would
be helpful that these be marked as warnings. The full output is attached.
What version of the product are you using? On what operating system?
This is rev 26 on 64 bit Windows 7, running Borland C++ Build 10. .Net 4.0 is
installed on my machine.
Please provide any additional information below.
I suspect that this is ignorable , but just making sure.
Original issue reported on code.google.com by [email protected]
on 11 Jul 2012 at 2:23
Attachments:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.