digitalmars.D.learn - About demangling
- Lubos Pintes <lubos.pintes gmail.com> Oct 11 2012
- Jacob Carlborg <doob me.com> Oct 11 2012
- Sean Kelly <sean invisibleduck.org> Oct 11 2012
- "Dan" <dbdavidson yahoo.com> Nov 01 2012
- "H. S. Teoh" <hsteoh quickfur.ath.cx> Nov 01 2012
- "Regan Heath" <regan netmail.co.nz> Nov 01 2012
- "Regan Heath" <regan netmail.co.nz> Nov 01 2012
- "H. S. Teoh" <hsteoh quickfur.ath.cx> Nov 01 2012
- "Regan Heath" <regan netmail.co.nz> Nov 01 2012
- "Regan Heath" <regan netmail.co.nz> Nov 01 2012
- "H. S. Teoh" <hsteoh quickfur.ath.cx> Nov 01 2012
Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears? Thank
Oct 11 2012
On 2012-10-11 15:17, Lubos Pintes wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears? Thank
This page contains the reference for the name mangling: http://dlang.org/abi.html -- /Jacob Carlborg
Oct 11 2012
On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> = wrote:Hi, Can someone point me to some source with information about name =
appears? Filter the symbol names through core.demangle.
Oct 11 2012
On 11-10-2012 22:56, Sean Kelly wrote:On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears?
Filter the symbol names through core.demangle.
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.d -- Alex Rønne Petersen alex lycus.org http://lycus.org
Oct 11 2012
On Thursday, 11 October 2012 at 21:04:28 UTC, Alex Rønne Petersen wrote:On 11-10-2012 22:56, Sean Kelly wrote:On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears?
Filter the symbol names through core.demangle.
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.d
Does this work and if so how? I've seen a thread about the demangling tool not working on types, just functions. The comment at top of this file says "Replaces *all* occurrences of mangled D symbols in the input..." so I assume it deals with types? The help says: 'If <inputfile> is a single dash '-', standard input is read.' I've tried: $ echo "this & _D56TypeInfo_xS8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ unq & _D55TypeInfo_S8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ"./goo.txt
which just hangs, and this - which does not demangle: $ echo "this & _D56TypeInfo_xS8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ unq & _D55TypeInfo_S8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ" | ./ddmangle this & _D56TypeInfo_xS8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ unq & _D55TypeInfo_S8plusauri6bsheet13balance_sheet12BalanceSheet6__initZ What is the correct way to do this? Thanks Dan
Nov 01 2012
On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex Rønne Petersen wrote:On 11-10-2012 22:56, Sean Kelly wrote:On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears?
Filter the symbol names through core.demangle.
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.d
Does this work and if so how? I've seen a thread about the demangling tool not working on types, just functions. The comment at top of this file says "Replaces *all* occurrences of mangled D symbols in the input..." so I assume it deals with types? The help says: 'If <inputfile> is a single dash '-', standard input is read.'
This program only calls the library core.demangle. So if core.demangle doesn't demangle something, then it won't get demangled. The problem is, there's a comment in core.demangle that seems to say that some mangled symbols are skipped because they are not pertinent to the ABI, or something to that effect. Meaning that *not* all symbols are getting demangled. I think this should be an enhancement request in the bugtracker. T -- Let's call it an accidental feature. -- Larry Wall
Nov 01 2012
On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh <hsteoh quickfur.ath.cx> = = wrote:On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex R=F8nne Petersen wrote:On 11-10-2012 22:56, Sean Kelly wrote:On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears?
Filter the symbol names through core.demangle.
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangl=
Does this work and if so how? I've seen a thread about the demangling=
tool not working on types, just functions. The comment at top of this=
file says "Replaces *all* occurrences of mangled D symbols in the input..." so I assume it deals with types? The help says: 'If <inputfile> is a single dash '-', standard input is read.'
This program only calls the library core.demangle. So if core.demangle=
doesn't demangle something, then it won't get demangled. The problem i=
there's a comment in core.demangle that seems to say that some mangled=
symbols are skipped because they are not pertinent to the ABI, or something to that effect. Meaning that *not* all symbols are getting demangled. I think this should be an enhancement request in the bugtracker.
There is also a bug in demangle.d, line 55: foreach (line; stdin.byLine()) should read: foreach (line; f.byLine()) R -- = Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 01 2012
On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh <hsteoh quickfur.ath.cx> = = wrote:On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex R=F8nne Petersen wrote:On 11-10-2012 22:56, Sean Kelly wrote:On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:Hi, Can someone point me to some source with information about name demangling when compiling some D program and the famous linker error 42 appears?
Filter the symbol names through core.demangle.
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangl=
Does this work and if so how? I've seen a thread about the demangling=
tool not working on types, just functions. The comment at top of this=
file says "Replaces *all* occurrences of mangled D symbols in the input..." so I assume it deals with types? The help says: 'If <inputfile> is a single dash '-', standard input is read.'
This program only calls the library core.demangle. So if core.demangle=
doesn't demangle something, then it won't get demangled. The problem i=
there's a comment in core.demangle that seems to say that some mangled=
symbols are skipped because they are not pertinent to the ABI, or something to that effect. Meaning that *not* all symbols are getting demangled. I think this should be an enhancement request in the bugtracker.
Also, running this: dmd test.d | demangle.exe - on windows, results in this: invalid UTF-8 sequence Usage: demangle.exe [options] <inputfile> Demangles all occurrences of mangled D symbols in the input and writes t= o standard output. If <inputfile> is a single dash '-', standard input is read. Options: --help, -h Show this help Adding writefln to demangle.d to debug the issue shows that args[1] is "= -" = and that getopt is throwing the exception "invalid UTF-8 sequence". Omitting the - works, and demangle reads stdin. R -- = Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 01 2012
On Thu, Nov 01, 2012 at 04:25:56PM -0000, Regan Heath wrote:On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex Rønne Petersen wrote:On 11-10-2012 22:56, Sean Kelly wrote:
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.d
Also, running this: dmd test.d | demangle.exe - on windows, results in this: invalid UTF-8 sequence
Omitting the - works, and demangle reads stdin.
https://github.com/D-Programming-Language/tools/pull/35 T -- English has the lovely word "defenestrate", meaning "to execute by throwing someone out a window", or more recently "to remove Windows from a computer and replace it with something useful". :-) -- John Cowan
Nov 01 2012
On Thu, 01 Nov 2012 16:25:56 -0000, Regan Heath <regan netmail.co.nz> wrote:Adding writefln to demangle.d to debug the issue shows that args[1] is "-" and that getopt is throwing the exception "invalid UTF-8 sequence".
I was wrong here, this line is the issue: stderr.writeln(e.msg); For some reason, when run from command prompt and passed "-" as an arg it errors. If I run it in debug mode in VisualD it works and outputs: Unrecognized option - R -- Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 01 2012
On Thu, 01 Nov 2012 17:21:29 -0000, H. S. Teoh <hsteoh quickfur.ath.cx> = = wrote:On Thu, Nov 01, 2012 at 04:25:56PM -0000, Regan Heath wrote:On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex R=F8nne Petersen=
wrote:On 11-10-2012 22:56, Sean Kelly wrote:
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddeman=
[...]Also, running this: dmd test.d | demangle.exe - on windows, results in this: invalid UTF-8 sequence
Omitting the - works, and demangle reads stdin.
https://github.com/D-Programming-Language/tools/pull/35
Perfect, thanks. R -- = Using Opera's revolutionary email client: http://www.opera.com/mail/
Nov 01 2012
On Thu, Nov 01, 2012 at 08:40:23AM -0700, H. S. Teoh wrote:On Thu, Nov 01, 2012 at 03:16:25PM +0100, Dan wrote:On Thursday, 11 October 2012 at 21:04:28 UTC, Alex Rønne Petersen wrote:
We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.d
Does this work and if so how? I've seen a thread about the demangling tool not working on types, just functions. The comment at top of this file says "Replaces *all* occurrences of mangled D symbols in the input..." so I assume it deals with types? The help says: 'If <inputfile> is a single dash '-', standard input is read.'
This program only calls the library core.demangle. So if core.demangle doesn't demangle something, then it won't get demangled. The problem is, there's a comment in core.demangle that seems to say that some mangled symbols are skipped because they are not pertinent to the ABI, or something to that effect. Meaning that *not* all symbols are getting demangled. I think this should be an enhancement request in the bugtracker.
I just looked over core.demangle. Apparently only function names are demangled, everything else is currently not implemented. :-( I say, definitely file an enhancement request in the bugtracker. T -- The computer is only a tool. Unfortunately, so is the user. -- Armaphine, K5
Nov 01 2012









Jacob Carlborg <doob me.com> 