Archives
D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger
C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows
digitalmars.empire
digitalmars.DMDScript
|
c++ - Viewing symbols
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
I see various dump* utility commands, which have some
capability to emit symbols, in both .obj's and .exe's,
but they are within a hex core dump. Is their an equivalent
to MS's link -dump -symbols for .obj's and .exe's?
Also, how do I get symbols in a map file by invoking sc?
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1q8ih$549$1 panix3.panix.com>,
Greg Comeau <comeau comeaucomputing.com> wrote:
I see various dump* utility commands, which have some
capability to emit symbols, in both .obj's and .exe's,
but they are within a hex core dump. Is their an equivalent
to MS's link -dump -symbols for .obj's and .exe's?
Also, how do I get symbols in a map file by invoking sc?
Ok, I now see -L/XREF and -L/DETAILEDMAP which I think addresses
the latter. Still curious on the former, and for .obj's.
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1q8ih$549$1 panix3.panix.com...
I see various dump* utility commands, which have some
capability to emit symbols, in both .obj's and .exe's,
but they are within a hex core dump. Is their an equivalent
to MS's link -dump -symbols for .obj's and .exe's?
For .obj's:
obj2asm file.obj
For .exe's:
dumpexe file.exe
(all the symbols will be in there, as well as the hex data)
Also, how do I get symbols in a map file by invoking sc?
sc file.c -L/map
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1qd2g$1i0g$3 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1q8ih$549$1 panix3.panix.com...
I see various dump* utility commands, which have some
capability to emit symbols, in both .obj's and .exe's,
but they are within a hex core dump. Is their an equivalent
to MS's link -dump -symbols for .obj's and .exe's?
For .obj's:
obj2asm file.obj
For .exe's:
dumpexe file.exe
(all the symbols will be in there, as well as the hex data)
I see the symbols in the records, but they're not too readable.
For instance, this:
0000 THEADR b 5f 63 6f 6d 6f 69 6e 74 63 2e 63 ._comointc.c
....
0086 COMDEF 14 5f 55 6e 49 6e 69 74 65 64 47 6c 6f 62 61 6c ._UnInitedGlobal
41 72 72 61 79 0 62 81 8c 1 Array.b...
00a4 PUB386 1 2 12 5f 44 65 66 69 6e 65 64 57 69 74 68 4e ..._DefinedWithN
6f 49 6e 69 74 0 0 0 0 0 11 5f 49 6e 69 74 oInit......_Init
64 47 6c 6f 62 61 6c 41 72 72 61 79 4 0 0 0 dGlobalArray....
0 b 5f 45 78 74 65 72 6e 64 49 44 32 10 0 0 .._ExterndID2...
0 0 10 5f 44 65 66 69 6e 65 64 57 69 74 68 49 ..._DefinedWithI
6e 69 74 14 0 0 0 0 nit.....
0109 EXTDEF e 5f 5f 61 63 72 74 75 73 65 64 5f 63 6f 6e 0 .__acrtused_con.
e 5f 45 78 74 65 72 6e 46 6f 6f 5f 5f 46 76 0 ._ExternFoo__Fv.
8 5f 66 6f 6f 5f 5f 46 76 0 a 5f 45 78 74 65 ._foo__Fv.._Exte
72 6e 64 49 44 0 6 5f 5f 6d 61 69 6e 0 rndID..__main.
014b PUB386 0 1 f 5f 44 65 66 69 6e 65 64 66 6f 6f 5f 5f ..._Definedfoo__
46 76 1 0 0 0 0 5 5f 6d 61 69 6e 2 0 0 Fv......_main...
....
would look nice as such:
0000 THEADR _comointc.c
0086 COMDEF _UnInitedGlobalArray
0086 COMDEF b
00a4 PUB386 _DefinedWithNoInit
00a4 PUB386 _InitdGlobalArray
00a4 PUB386 _ExterndID2
00a4 PUB386 _DefinedWithInit
0109 EXTDEF __acrtused_con
0109 EXTDEF _ExternFoo__Fv
0109 EXTDEF _foo__Fv
0109 EXTDEF _ExterndID
0109 EXTDEF __main
014b PUB386 _Definedfoo__Fv
014b PUB386 _main
.... ...... ....
at least in terms of symbols, similar to the output from UNIX's nm command.
obj2asm has such a form, using extrn, comm, and public, but I don't need to
see the code and other things, just symbols. And not just for .obj's
but for .libs too. Is there any such option and/or command?
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1s5gm$53h$1 panix3.panix.com...
In article <a1qd2g$1i0g$3 digitaldaemon.com>,
at least in terms of symbols, similar to the output from UNIX's nm
obj2asm has such a form, using extrn, comm, and public, but I don't need
see the code and other things, just symbols. And not just for .obj's
but for .libs too. Is there any such option and/or command?
No, but for libs there is. Try:
libunres -l file.lib
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1sdrv$2p4c$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1s5gm$53h$1 panix3.panix.com...
In article <a1qd2g$1i0g$3 digitaldaemon.com>,
at least in terms of symbols, similar to the output from UNIX's nm
obj2asm has such a form, using extrn, comm, and public, but I don't need
see the code and other things, just symbols. And not just for .obj's
but for .libs too. Is there any such option and/or command?
No, but for libs there is. Try:
libunres -l file.lib
Ok, I'll play more. In the meantime I just ran libunres on a .obj
and it seem to produce something meaningful, no?
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sf4b$adg$1 panix3.panix.com...
In article <a1sdrv$2p4c$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1s5gm$53h$1 panix3.panix.com...
In article <a1qd2g$1i0g$3 digitaldaemon.com>,
at least in terms of symbols, similar to the output from UNIX's nm
obj2asm has such a form, using extrn, comm, and public, but I don't
to
see the code and other things, just symbols. And not just for .obj's
but for .libs too. Is there any such option and/or command?
No, but for libs there is. Try:
libunres -l file.lib
Ok, I'll play more. In the meantime I just ran libunres on a .obj
and it seem to produce something meaningful, no?
I wrote libunres so long ago I don't remember if it works on .obj files!
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj files!
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
I think comdef's are newer than the utility <g>.
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sv6n$oou$1 panix3.panix.com...
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj files!
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1tdh8$anv$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sv6n$oou$1 panix3.panix.com...
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj files!
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
I think comdef's are newer than the utility <g>.
Any chance of making the utility newer than comdef's then? :)
And also letting one output combo's of the different sections?
I know I know... easy for me to ask...
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1ulik$o2a$1 panix3.panix.com...
In article <a1tdh8$anv$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sv6n$oou$1 panix3.panix.com...
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
I think comdef's are newer than the utility <g>.
Any chance of making the utility newer than comdef's then? :)
And also letting one output combo's of the different sections?
I know I know... easy for me to ask...
I'm curious - what would it be used for?
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a1vs4t$1t9k$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1ulik$o2a$1 panix3.panix.com...
In article <a1tdh8$anv$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sv6n$oou$1 panix3.panix.com...
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj
files!
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
I think comdef's are newer than the utility <g>.
Any chance of making the utility newer than comdef's then? :)
And also letting one output combo's of the different sections?
I know I know... easy for me to ask...
I'm curious - what would it be used for?
We put out special names tell the Comeau template instantiation
mechanism what to do. W/o seeing the names, it assumes no
template instantiation is necessary.
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
↑ ↓ ← → "Walter" <walter digitalmars.com> writes:
"Greg Comeau" <comeau panix.com> wrote in message
news:a20b50$k1f$1 panix3.panix.com...
In article <a1vs4t$1t9k$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1ulik$o2a$1 panix3.panix.com...
In article <a1tdh8$anv$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a1sv6n$oou$1 panix3.panix.com...
In article <a1sgg6$2qor$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
I wrote libunres so long ago I don't remember if it works on .obj
files!
It seems to. I don't seem to be able to get COMDEF's emitted
in a list from it though. Any thoughts?
I think comdef's are newer than the utility <g>.
Any chance of making the utility newer than comdef's then? :)
And also letting one output combo's of the different sections?
I know I know... easy for me to ask...
I'm curious - what would it be used for?
We put out special names tell the Comeau template instantiation
mechanism what to do. W/o seeing the names, it assumes no
template instantiation is necessary.
Ok. It helps to know what the problem is, so the solution will be the right
one!
↑ ↓ ← → comeau panix.com (Greg Comeau) writes:
In article <a20b5r$26pg$1 digitaldaemon.com>,
Walter <walter digitalmars.com> wrote:
"Greg Comeau" <comeau panix.com> wrote in message
news:a20b50$k1f$1 panix3.panix.com...
We put out special names tell the Comeau template instantiation
mechanism what to do. W/o seeing the names, it assumes no
template instantiation is necessary.
Ok. It helps to know what the problem is, so the solution will be the right
one!
Name encoding details aside, we output something like this:
char vector_int_can_be_instantiated;
We then look for these, and determine which object files will
"own" that instantiation, since many may request it.
This analysis is done program-wide, and then the instantiations
are distributed.
But we can't seem to get the id name. If used as above,
the utility won't output it. If we = 0 it, then I recall it
will get output, however, if it's in multiple source files,
then a duplicate definition occurs. If we extern it,
I recall we can also see it, but then an unrevolved reference
error occurs.
--
Greg Comeau What's next: additional Windows backends and 'export'!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
|
|