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.
What about all the exception handling support? It would be very nice if the
source (.ASM) was included for these functions.
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,
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
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.
Although the rest would be good also :)
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,
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.)