| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| X-Injected-Via-Gmane: | http://gmane.org/ |
| To: | cygwin AT cygwin DOT com |
| From: | "Alex Vinokur" <alexvn AT connect DOT to> |
| Subject: | objdump : inaccurate demangling for foo(char* const) |
| Date: | Fri, 19 Sep 2003 06:37:44 +0300 |
| Lines: | 95 |
| Message-ID: | <bkdtn1$597$2@sea.gmane.org> |
| X-Complaints-To: | usenet AT sea DOT gmane DOT org |
| X-MSMail-Priority: | Normal |
| X-Newsreader: | Microsoft Outlook Express 6.00.2800.1106 |
| X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2800.1106 |
==========================================
Windows 2000 Professional
CYGWIN_NT-5.0 1.5.4(0.94/3/2)
GNU gcc version 3.2 20020927 (prerelease)
GNU objdump 2.14.90 20030901
==========================================
It seems that objdump inaccurately demangles foo(char* const).
Low-level symbol name of foo(char* const) is valid : __Z3fooPc
But user-level symbol name obtained after demangling is inaccurate : foo(char*).
====== C++ code : BEGIN ======
// File t.cpp
void foo3 (char*) {}
====== C++ code : END ========
====== Compilation : BEGIN ======
$ g++ -c t.cpp
====== Compilation : END ========
====== objdump : BEGIN ======
$ objdump -d t.o
t.o: file format pe-i386
Disassembly of section .text:
00000000 <__Z3fooPc>: // OK
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 5d pop %ebp
4: c3 ret
5: 90 nop
6: 90 nop
7: 90 nop
8: 90 nop
9: 90 nop
a: 90 nop
b: 90 nop
c: 90 nop
d: 90 nop
e: 90 nop
f: 90 nop
$ objdump -Cd t.o
t.o: file format pe-i386
Disassembly of section .text:
00000000 <foo(char*)>: // Must be foo(char* const)
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 5d pop %ebp
4: c3 ret
5: 90 nop
6: 90 nop
7: 90 nop
8: 90 nop
9: 90 nop
a: 90 nop
b: 90 nop
c: 90 nop
d: 90 nop
e: 90 nop
f: 90 nop
====== objdump : END ========
--
=====================================
Alex Vinokur
mailto:alexvn AT connect DOT to
http://mathforum.org/library/view/10978.html
=====================================
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |