digitalmars.D.learn - About demangling
- Lubos Pintes (5/5) Oct 11 2012 Hi,
- Jacob Carlborg (5/10) Oct 11 2012 This page contains the reference for the name mangling:
- Sean Kelly (5/7) Oct 11 2012 demangling when compiling some D program and the famous linker error 42 ...
- =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= (7/11) Oct 11 2012 We even have a tool for that:
- Dan (27/41) Nov 01 2012 Does this work and if so how? I've seen a thread about the
- H. S. Teoh (12/34) Nov 01 2012 [...]
-
Regan Heath
(12/43)
Nov 01 2012
On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh
... -
Regan Heath
(23/54)
Nov 01 2012
On Thu, 01 Nov 2012 15:40:23 -0000, H. S. Teoh
... - H. S. Teoh (11/28) Nov 01 2012 [...]
-
Regan Heath
(8/31)
Nov 01 2012
On Thu, 01 Nov 2012 17:21:29 -0000, H. S. Teoh
... - Regan Heath (11/13) Nov 01 2012 I was wrong here, this line is the issue:
- H. S. Teoh (9/30) 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? ThankThis 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 =demangling when compiling some D program and the famous linker error 42 = 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: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.orgHi, 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.
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: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"On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.dHi, 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../goo.txt$ ./ddmangle ./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:[...] 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 WallOn 11-10-2012 22:56, Sean Kelly wrote: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.'On Oct 11, 2012, at 6:17 AM, Lubos Pintes <lubos.pintes gmail.com> wrote:We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.dHi, 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.
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:e.dOn 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:We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangl=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.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=s,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:e.dOn 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:We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangl=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.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=s,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.dAlso, 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 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=gle.d[...]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=[...]Perfect, thanks. R -- = Using Opera's revolutionary email client: http://www.opera.com/mail/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
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, 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:[...] 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[...] 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.We even have a tool for that: https://github.com/D-Programming-Language/tools/blob/master/ddemangle.dDoes 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.'
Nov 01 2012