I'm using VS-Code on windows. And I'm using rust-analyzer
extension. It also works for C/C . When I want to view the implementation of a standard library function, it takes me to the function's declaration.
For example:
When I try to view the malloc
function, it takes me to
_Check_return_ _Ret_maybenull_ _Post_writable_byte_size_(_Size)
_ACRTIMP _CRTALLOCATOR _CRT_JIT_INTRINSIC _CRTRESTRICT _CRT_HYBRIDPATCHABLE
void* __cdecl malloc(
_In_ _CRT_GUARDOVERFLOW size_t _Size
);
this is located in corecrt_malloc.h
file. But this is just a declaration. I'm unable to find the actual implementation for any std function. I don't want to go and search files manually. Is there an easier way to do this?
Note:
findstr
doesn't work for me. If I type, for example, malloc
, it finds every malloc
call.
CodePudding user response:
The actual definition of the function is almost certainly not there. It is compiled and distributed inside the C runtime library.
CodePudding user response:
If you have the Windows SDK installed, look for the file (change the version if necessary):
C:\Program Files (x86)\Windows Kits\10\Source\10.0.22000.0\ucrt\heap\malloc.cpp
You will notice malloc
calls _malloc_base
, which is in malloc_base.cpp
in the same directory. _malloc_base
then calls HeapAlloc
. And since this one is part of Windows system DLLs (namely kernel32.dll
), I fear you won't find its source code.