Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Visual C++ runtime library question

28 views
Skip to first unread message

Jonathan Wilson

unread,
Oct 12, 2003, 4:30:32 AM10/12/03
to
I notice that the Visual C++ runtime library source code included with
Visual Studio 6 is incomplete. Can anyone tell me what the bits that are
included only as *.obj files are used for and why they are not included?

Ed Dore[MSFT]

unread,
Oct 15, 2003, 2:00:29 PM10/15/03
to
Hi Jonathan,

I did a quick check (admittedly, it wasn't very thorough) on both the VC6
and VC7.1 source trees, and didn't notice any .OBJ files that that ship
without the sources. Some of the .OBJs are actually written in assembler,
but we also ship those .ASM files in the crt\src\intel directory. Do you
have any particular examples of .OBJs that you cannot locate source files
for?

Thanks,
Ed Dore [MSFT]

This post is "AS IS" with no warranties, and confers no rights.

Brian Ross

unread,
Oct 15, 2003, 2:40:34 PM10/15/03
to
""Ed Dore[MSFT]"" <eddoo...@microsoft.com> wrote in message
news:ZwmJ6Y0k...@cpmsftngxa06.phx.gbl...

> Hi Jonathan,
>
> I did a quick check (admittedly, it wasn't very thorough) on both the VC6
> and VC7.1 source trees, and didn't notice any .OBJ files that that ship
> without the sources. Some of the .OBJs are actually written in assembler,
> but we also ship those .ASM files in the crt\src\intel directory. Do you
> have any particular examples of .OBJs that you cannot locate source files
> for?

What about all the exception handling support? It would be very nice if the
source (.ASM) was included for these functions.


Ed Dore[MSFT]

unread,
Oct 15, 2003, 8:12:42 PM10/15/03
to
Hi Brian,

I'm guessing that most of the exception handling code is generated by the
compiler itself (ala the /GX switch), so you won't find a lot of it in the
C runtime sources. If I'm completely mistaken, (and I've been known to do
so) just throw me a few function names and I'll see if I can track em down
for you.

Sincerely,

Brian Ross

unread,
Oct 15, 2003, 9:24:23 PM10/15/03
to

""Ed Dore[MSFT]"" <eddoo...@microsoft.com> wrote in message
news:#xQ64o3k...@cpmsftngxa06.phx.gbl...

> Hi Brian,
>
> I'm guessing that most of the exception handling code is generated by the
> compiler itself (ala the /GX switch), so you won't find a lot of it in the
> C runtime sources. If I'm completely mistaken, (and I've been known to do
> so) just throw me a few function names and I'll see if I can track em down
> for you.

How about most of the functions that are supplied in 'EH.LIB'?

Some of the more important ones are:

__CxxThrowException@8
"void __stdcall `eh vector destructor iterator'(void *,unsigned int,int,void
(__thiscall*)(void *))"
___CxxFrameHandler
__except_list

I just remembered that there are other functions that do not have the source
available. These are the run time check support functions (most of which are
provided either in the CRT libraries or the RunTmChk.lib file).

If these can be made available that would be great.

Thanks


Jonathan Wilson

unread,
Oct 15, 2003, 11:13:11 PM10/15/03
to
looking at my copy of Visual Studio 6 (with service pack 5), I can see the
folowing object/library files in Visual C++ 6 that dont have any source
code (either as .asm or .c/.cpp files)
VALIDATE.OBJ
ATLSSUP.OBJ
CHKESP.OBJ
CONV.LIB
EHPROLOG.OBJ
EHVECCTR.OBJ
EHVECCVB.OBJ
EHVECDTR.OBJ
EXSUP2.OBJ
EXSUP3.OBJ
EXSUP.OBJ
FRAME.OBJ
HOOKS.OBJ
LONGJMP.OBJ
LOWHELPR.OBJ
MATHERR.OBJ
MBSDUP.OBJ
OLDEXCPT.OBJ
RTTI.OBJ
SETJMP3.OBJ
SETJMP.OBJ
SETJMPEX.OBJ
STDEXCPT.OBJ
STRDUP.OBJ
THROW.OBJ
TLSSUP.OBJ
TRAN.LIB
TRNSCTRL.OBJ
TYPINFO.OBJ
TYPNAME.OBJ
UNDNAME.OBJ
UNHANDLD.OBJ
USER.OBJ
SDKNAMES.LIB
TCMAP.LIB
TCMAPDLL.LIB
COMMSUP.LIB
DELAYIMP.LIB
OLDNAMES.LIB

I dont have visual studio 7 so I cant comment on whats missing (if
anything) there.
It would be good to either get the source code to the files above or
failing that, an explanation as to why it wasnt included.

Jonathan Wilson

unread,
Oct 16, 2003, 9:22:30 AM10/16/03
to
BTW, the ones I am most interested in seeing code for (because I am
curious) are:
ATLSSUP.OBJ
TLSSUP.OBJ
UNDNAME.OBJ
COMMSUP.LIB

Although the rest would be good also :)

Ed Dore[MSFT]

unread,
Oct 17, 2003, 1:40:30 PM10/17/03
to
Hi Jon (and Brian),

Feedback from the dev team is that the sources aren't available for
distribution. Apparently for a number of reasons. I do know that there's a
special build process for the CRT that may have precluded shipping some of
the headers. And the fact that we've got good number of MSVCRT.DLL variants
in the wild probably doesn't help. But not being a CRT developer, I'm none
too familiar with the build process for the CRT.

The VC libraries team is looking at getting more of the sources out with
future releases though. While I'm guessing that you're just curious as to
the implementation, if you do have a problem regarding one or more of these
functions just let us know. Our support folks (including myself) do have
access to the source code for troubleshooting/debugging purposes, even if
we can't directly release them to customers.

Sincerely,

Brian Ross

unread,
Oct 17, 2003, 3:16:37 PM10/17/03
to

""Ed Dore[MSFT]"" <eddoo...@microsoft.com> wrote in message
news:oMoJFXNl...@cpmsftngxa06.phx.gbl...

Hi,

One of the main motivations that I have for having the source is to have the
ability to not use the CRT libraries but still have access to core C++
functionality such as exceptions and run time checking.

Ideally, what I would like to see is a complete separate library (preferably
with source) that has no other other dependencies that implements all the
support routines that the C++ compiler depends on for native functionality.
While it is possible to rebuild the CRT without most components, the
exception support pulls in alot of CRT low level functions which means you
are now required to initialize the CRT as well make use of several CRT
functions.

(Note: I don't necessarily disagree with low level support routines making
use of CRT functions. Afterall, if the function does what you want why not
make use if it. The problem is that it makes it annoying/very difficult if
you ever want to separate the two.)


Jonathan Wilson

unread,
Oct 17, 2003, 8:42:20 PM10/17/03
to
> Feedback from the dev team is that the sources aren't available for
> distribution. Apparently for a number of reasons. I do know that there's a
> special build process for the CRT that may have precluded shipping some of
Fair enough.
I imagine (from looking at what those particular obj files are) that some
of them werent released because they reveal internal compiler details that
microsoft wants to be free to keep secret and to change in future compiler
versions.

0 new messages