Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一个空的模块有228个符号?

一个空的模块有228个符号?
EN

Stack Overflow用户
提问于 2011-05-08 10:08:19
回答 2查看 628关注 0票数 3

char_array.c

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char arr[1]; 

int main(void) { printf("%s\n", arr); return 0; } 

由windbg转储的char_array.exe中的符号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0:000> x char_array!*
0040702c char_array!__security_cookie_complement = 0x44bf19b1
00407148 char_array!envp = 0x00000000
00405b08 char_array!uninit_postmsg = char [43] "' is being used without being initialized."
00407168 char_array!_RTC_ErrorReportFunc = 0x00000000
00407150 char_array!managedapp = 0n0
0040716c char_array!_RTC_ErrorReportFuncW = 0x00000000
00407174 char_array!_commode = 0n0
004068d0 char_array!__rtc_taa = <function> *[1]
00407178 char_array!_fmode = 0n0
004065c4 char_array!__rtc_iaa = <function> *[1]
00405000 char_array!__xc_a = <function> *[]
00405000 char_array!__xc_a = <function> *[1]
0040827c char_array!_imp____initenv = 0x10315760
00407030 char_array!mspdbName = 0x00405f88 "MSPDB80.DLL"
00405a98 char_array!_RTC_ErrorMessages = char *[6]
004074f4 char_array!__dyn_tls_init_callback = 0x00000000
00405618 char_array!__xi_z = <function> *[]
00405618 char_array!__xi_z = <function> *[1]
00407004 char_array!_RTC_ErrorLevels = int [5]
00407024 char_array!__native_vcclrit_reason = 0xffffffff
004071e8 char_array!GS_ContextRecord = struct _CONTEXT
00405410 char_array!pcinit = 0x00401240
004071e0 char_array!DebuggerWasPresent = 0n0
004074d0 char_array!__native_startup_lock = 0x00000000
00407170 char_array!_forceCRTManifestRTM = 0n0
00405e68 char_array!_RTC_errlist = char *[5]
00407020 char_array!__native_dllmain_reason = 0xffffffff
00407141 char_array!arr = char [1] ""
00407160 char_array!has_cctor = 0n0
0040715c char_array!mainret = 0n0
00407180 char_array!_newmode = 0n0
004082a8 char_array!_imp___adjust_fdiv = 0x103166cc
004074d4 char_array!__onexitend = 0x00000000
00405ab0 char_array!_RTC_NoFalsePositives = int [6]
00408248 char_array!_imp___onexit = 0x102cf660
0040530c char_array!__xi_a = <function> *[]
0040530c char_array!__xi_a = <function> *[1]
00407154 char_array!argret = 0n0
00406034 char_array!GS_ExceptionPointers = struct _EXCEPTION_POINTERS
0040714c char_array!argv = 0x00000000
004067cc char_array!__rtc_izz = <function> *[1]
00405208 char_array!__xc_z = <function> *[]
00405208 char_array!__xc_z = <function> *[1]
00407184 char_array!mspdb = 0x00000000
00407018 char_array!__globallocalestatus = 0n-2
004074e8 char_array!_adjust_fdiv = 0n0
00406ad8 char_array!__rtc_tzz = <function> *[1]
004064c0 char_array!__safe_se_handler_table = void *[]
00407190 char_array!GS_ExceptionRecord = struct _EXCEPTION_RECORD
00406040 char_array!_load_config_used = struct IMAGE_LOAD_CONFIG_DIRECTORY32_2
0040717c char_array!_dowildcard = 0n0
00405ac8 char_array!stack_premsg = char [28] "Stack around the variable '"
00407158 char_array!startinfo = struct _startupinfo
00407028 char_array!__security_cookie = 0xbb40e64e
00405af8 char_array!uninit_premsg = char [15] "The variable '"
0040701c char_array!__defaultmatherr = 0n1
004074e4 char_array!__onexitbegin = 0x00000000
00405514 char_array!pinit = 0x00401f10
00407164 char_array!wsprintffp = 0x00000000
00407144 char_array!argc = 0n0
00405104 char_array!pcppinit = 0x004012e0
004074c0 char_array!__native_startup_state = __uninitialized (0n0)
00405ae4 char_array!stack_postmsg = char [17] "' was corrupted."
004022f0 char_array!_FindPESection (unsigned char *, unsigned long)
00401040 char_array!_RTC_CheckEsp (void)
00401f70 char_array!_invoke_watson_if_error (int, wchar_t *, wchar_t *, wchar_t *, unsigned int, unsigned int)
00401790 char_array!failwithmessage (void *, int, int, char *)
00401a40 char_array!_RTC_StackFailure (void *, char *)
00401fd0 char_array!_RTC_Initialize (void)
00401e80 char_array!_RTC_GetErrorFunc (void *)
00401010 char_array!main (void)
00401de0 char_array!_RTC_NumErrors (void)
00401e60 char_array!_RTC_SetErrorFuncW (<function> *)
00401730 char_array!_RTC_Failure (void *, int)
00401670 char_array!DebuggerKnownHandle (void)
00401110 char_array!_RTC_CheckStackVars2 (void *, struct _RTC_framedesc *, struct _RTC_ALLOCA_NODE *)
004019a0 char_array!DebuggerRuntime (unsigned long, int, void *, wchar_t *)
00402150 char_array!atexit (<function> *)
00401e40 char_array!_RTC_SetErrorFunc (<function> *)
00402000 char_array!_RTC_Terminate (void)
00401f10 char_array!__CxxSetUnhandledExceptionFilter (void)
00401e90 char_array!_RTC_GetErrorFuncW (void *)
00402290 char_array!_ValidateImageBase (unsigned char *)
00401340 char_array!mainCRTStartup (void)
00401b40 char_array!_RTC_AllocaFailure (void *, struct _RTC_ALLOCA_NODE *, int)
00401fc0 char_array!_setargv (void)
004015b0 char_array!NtCurrentTeb (void)
004012e0 char_array!pre_cpp_init (void)
00401c80 char_array!_getMemBlockDataString (char *, char *, char *, unsigned int)
00401e10 char_array!_RTC_SetErrorType (_RTC_ErrorNumber, int)
004016a0 char_array!DebuggerProbe (unsigned long)
00401fb0 char_array!_matherr (struct _exception *)
00401360 char_array!__tmainCRTStartup (void)
00402970 char_array!__security_check_cookie (unsigned int)
00401ea0 char_array!__CxxUnhandledExceptionFilter (struct _EXCEPTION_POINTERS *)
00401cf0 char_array!_RTC_UninitUse (char *)
00401220 char_array!_RTC_Shutdown (void)
004024a0 char_array!_except_handler4 (struct _EXCEPTION_RECORD *, struct _EXCEPTION_REGISTRATION_RECORD *, struct _CONTEXT *, void *)
00401df0 char_array!_RTC_GetErrDesc (_RTC_ErrorNumber)
004010d0 char_array!_RTC_AllocaHelper (struct _RTC_ALLOCA_NODE *, unsigned int, struct _RTC_ALLOCA_NODE **)
00401f30 char_array!_setdefaultprecision (void)
00401070 char_array!_RTC_CheckStackVars (void *, struct _RTC_framedesc *)
004015c0 char_array!check_managed_app (void)
004024d0 char_array!_RTC_GetSrcLine (unsigned char *, wchar_t *, unsigned long, int *, wchar_t *, unsigned long)
00402790 char_array!GetPdbDll (void)
00401240 char_array!pre_c_init (void)
00402190 char_array!__security_init_cookie (void)
004029b0 char_array!__report_gsfailure (void)
00402040 char_array!_onexit (<function> *)
004011f0 char_array!_RTC_InitBase (void)
00402370 char_array!_IsNonwritableInCurrentImage (unsigned char *)
004081a8 char_array!_imp__FreeLibrary = <no type information>
00402ac4 char_array!InterlockedExchange = <no type information>
004082a0 char_array!_imp____p__fmode = <no type information>
00408290 char_array!_imp____getmainargs = <no type information>
00405e84 char_array!<CrtImplementationDetails>::NativeDll::ThreadAttach = <no type information>
00402afa char_array!GetProcAddress = <no type information>
0040826c char_array!_imp___initterm_e = <no type information>
00408274 char_array!_imp___CrtDbgReportW = <no type information>
004081d0 char_array!_imp__QueryPerformanceCounter = <no type information>
004081fc char_array!_imp__Sleep = <no type information>
004081f4 char_array!_imp__IsDebuggerPresent = <no type information>
0040216c char_array!_encode_pointer = <no type information>
004081bc char_array!_imp__HeapFree = <no type information>
004081e8 char_array!_imp__WideCharToMultiByte = <no type information>
0040828c char_array!_imp___exit = <no type information>
004081a4 char_array!_imp__TerminateProcess = <no type information>
00402172 char_array!__set_app_type = <no type information>
004081c0 char_array!_imp__GetSystemTimeAsFileTime = <no type information>
004082b4 char_array!_imp___CRT_RTC_INITW = <no type information>
00401038 char_array!printf = <no type information>
0040227e char_array!exit = <no type information>
004082ac char_array!_imp____setusermatherr = <no type information>
00408284 char_array!_imp___cexit = <no type information>
00402aee char_array!MultiByteToWideChar = <no type information>
004081e0 char_array!_imp__lstrlenA = <no type information>
004081cc char_array!_imp__GetTickCount = <no type information>
00402992 char_array!_unlock = <no type information>
004081d4 char_array!_imp__SetUnhandledExceptionFilter = <no type information>
00408294 char_array!_imp___amsg_exit = <no type information>
004081c4 char_array!_imp__GetCurrentProcessId = <no type information>
0040248e char_array!_initterm_e = <no type information>
00402980 char_array!terminate = <no type information>
00408000 char_array!_IMPORT_DESCRIPTOR_MSVCR90D = <no type information>
00405e88 char_array!<CrtImplementationDetails>::NativeDll::ThreadDetach = <no type information>
00408270 char_array!_imp___initterm = <no type information>
00402b00 char_array!LoadLibraryA = <no type information>
0040829c char_array!_imp___encode_pointer = <no type information>
00408208 char_array!KERNEL32_NULL_THUNK_DATA = <no type information>
00402ad6 char_array!IsDebuggerPresent = <no type information>
004081dc char_array!_imp__GetProcAddress = <no type information>
00401f9c char_array!__setusermatherr = <no type information>
00402284 char_array!_CrtSetCheckCount = <no type information>
0040299e char_array!_lock = <no type information>
00408250 char_array!_imp___except_handler4_common = <no type information>
00402b5a char_array!UnhandledExceptionFilter = <no type information>
0040825c char_array!_imp___unlock = <no type information>
00402aca char_array!Sleep = <no type information>
00408260 char_array!_imp___invoke_watson = <no type information>
00402b42 char_array!VirtualQuery = <no type information>
00408280 char_array!_imp__exit = <no type information>
00402abe char_array!_crt_debugger_hook = <no type information>
00408254 char_array!_imp___crt_debugger_hook = <no type information>
00402026 char_array!__p__commode = <no type information>
00402b18 char_array!GetCurrentThreadId = <no type information>
004081ac char_array!_imp__VirtualQuery = <no type information>
00402272 char_array!_XcptFilter = <no type information>
004081a0 char_array!_imp__GetCurrentProcess = <no type information>
0040824c char_array!_imp___lock = <no type information>
00402adc char_array!RaiseException = <no type information>
00408264 char_array!_imp___controlfp_s = <no type information>
004081b4 char_array!_imp__GetProcessHeap = <no type information>
00408268 char_array!_imp_?terminateYAXXZ = <no type information>
00402b3c char_array!GetModuleFileNameW = <no type information>
004081d8 char_array!_imp__LoadLibraryA = <no type information>
00402998 char_array!__dllonexit = <no type information>
004029a4 char_array!_decode_pointer = <no type information>
00402b1e char_array!GetCurrentProcessId = <no type information>
00408278 char_array!_imp___CrtSetCheckCount = <no type information>
004029aa char_array!_except_handler4_common = <no type information>
00402488 char_array!_initterm = <no type information>
00402b30 char_array!HeapAlloc = <no type information>
0040298c char_array!_invoke_watson = <no type information>
00408204 char_array!_imp__UnhandledExceptionFilter = <no type information>
004082b0 char_array!_imp___configthreadlocale = <no type information>
004081ec char_array!_imp__DebugBreak = <no type information>
004082c0 char_array!MSVCR90D_NULL_THUNK_DATA = <no type information>
004081f8 char_array!_imp__InterlockedCompareExchange = <no type information>
00401e96 char_array!_CRT_RTC_INITW = <no type information>
00402b24 char_array!GetSystemTimeAsFileTime = <no type information>
00401f24 char_array!_configthreadlocale = <no type information>
0040217e char_array!__getmainargs = <no type information>
00405e7c char_array!<CrtImplementationDetails>::NativeDll::ProcessDetach = <no type information>
00402ad0 char_array!InterlockedCompareExchange = <no type information>
00402b48 char_array!FreeLibrary = <no type information>
004081f0 char_array!_imp__RaiseException = <no type information>
00402af4 char_array!lstrlenA = <no type information>
00402b2a char_array!HeapFree = <no type information>
00402b36 char_array!GetProcessHeap = <no type information>
00405e80 char_array!<CrtImplementationDetails>::NativeDll::ProcessAttach = <no type information>
00408014 char_array!_IMPORT_DESCRIPTOR_KERNEL32 = <no type information>
00402482 char_array!_CrtDbgReportW = <no type information>
00402b12 char_array!GetTickCount = <no type information>
0040202c char_array!__p__fmode = <no type information>
004081e4 char_array!_imp__MultiByteToWideChar = <no type information>
00402986 char_array!_controlfp_s = <no type information>
004081b8 char_array!_imp__HeapAlloc = <no type information>
00402b06 char_array!SetUnhandledExceptionFilter = <no type information>
00402b4e char_array!TerminateProcess = <no type information>
004082b8 char_array!_imp___decode_pointer = <no type information>
004081c8 char_array!_imp__GetCurrentThreadId = <no type information>
00402178 char_array!_amsg_exit = <no type information>
00405e8c char_array!<CrtImplementationDetails>::NativeDll::ProcessVerifier = <no type information>
00408298 char_array!_imp____set_app_type = <no type information>
00402b54 char_array!GetCurrentProcess = <no type information>
00408288 char_array!_imp___XcptFilter = <no type information>
004082bc char_array!_imp__printf = <no type information>
00402278 char_array!_cexit = <no type information>
00402ae8 char_array!WideCharToMultiByte = <no type information>
00408200 char_array!_imp__InterlockedExchange = <no type information>
00402ae2 char_array!DebugBreak = <no type information>
00402b0c char_array!QueryPerformanceCounter = <no type information>
004082a4 char_array!_imp____p__commode = <no type information>
00408258 char_array!_imp____dllonexit = <no type information>
004081b0 char_array!_imp__GetModuleFileNameW = <no type information>
00408028 char_array!_NULL_IMPORT_DESCRIPTOR = <no type information>
0040226c char_array!_exit = <no type information>

我很惊讶地发现,即使是像上面这样的空程序也有这么多符号,为什么?

EN

回答 2

Stack Overflow用户

发布于 2011-05-08 10:11:35

MSVC的C和C++库在main之前和之后做了很多神奇的事情。此外,您正在使用启用各种运行时检查的开关进行编译(这需要例如_RTC*符号)。您还可以使用导入来处理堆和调试构建错误报告机制。

在“编译器魔术”一词中的“魔术”(编译器/工具链在幕后为你做的东西)包括例如

设置堆栈“cookie”以便检测堆栈和来自Windows的各种信息(例如,manager

  • Setting、GetCommandLineGetEnvironmentStrings)

  • Initialize memory
  • up GetStartupInfo检查堆

标志设置

  • 标志
  • 添加退出处理程序

<GetStartupInfo>F216

如果您在调试模式下构建此应用程序,并在main的开始处设置断点,您将看到什么调用main。通读__tmainCRTStartup和它调用的函数。

票数 5
EN

Stack Overflow用户

发布于 2011-05-08 13:12:11

是的,当您使用/DEBUG选项进行编译时,调试器会变得更加智能。他们将更多地了解程序中使用的变量和函数,包括CRT使用的变量和函数。

这是设计好的。请确保发布您的程序的发布版本,并且不要包含.pdb文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5926799

复制
相关文章
清理垃圾bat代码
rd /s /q %windir%\temp & md %windir%\temp
全栈程序员站长
2022/07/04
1K0
清理垃圾bat代码
/tmp目录清理问题
2019年7月10日 ⋅ 浏览量: 4   
以谁为师
2019/07/11
3.2K0
解决spark日志清理问题
由于采用了sparkstreaming 任务一直再运行导致日志文件暴涨,达到了硬盘的预警,不得已必须指定策略定期删除日志已保证服务器硬盘空间。
用户1217611
2020/11/24
2.2K0
关于清理webgame缓存的问题
直接请求百度首页http://www.baidu.com/,看到所请求的资源都是Cache
meteoric
2018/11/16
2.2K0
【Rust 基础篇】Drop Trait 清理代码
在 Rust 中,Drop trait 是一种特殊的 trait,用于定义在值离开作用域时进行清理操作的行为。通过实现 Drop trait,我们可以自定义类型在销毁时的清理逻辑,例如释放资源或执行必要的操作。
繁依Fanyi
2023/10/12
2100
解决svn清理失败,路径显示乱码问题
点击下载   SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
程序员云帆哥
2022/05/12
2.2K0
解决svn清理失败,路径显示乱码问题
利用正则批量清理Teleport Ultra/Pro冗余代码
Teleport 是一款非常优秀的网站离线浏览工具(即网站整站下载工具),但该软件下载的网页文件里会包含大量冗余代码(如:tppabs),手动去修改工作量很大。
德顺
2019/11/13
9830
只需一串代码,实现清理电脑缓存
任何电脑使用时间过久都会留下垃圾痕迹,及时清理系统垃圾 bat才能确保电脑的顺畅。下面就介绍一下一键清理系统垃圾bat的方法,方便快捷。
小何.
2023/03/03
2.4K0
只需一串代码,实现清理电脑缓存
[PHP] 存储改造中的逻辑和清理遗留的问题
现象:用户读信时,根据路径的哈希结果,访问四台服务器中一台请求文件,这四台缓存机器已经下线,访问不到再去后端存储访问浪费了时间
唯一Chat
2019/09/29
5840
CMI | 关于生物清理以及垃圾清理
关于生物清理 在CMI中有个定时任务的配置文件(schedules.yml) killall: Enabled: true Repeat: true Delay: 3600 Commands: - * - * 我们可在其中添加特殊命令 - actionbar! &#x5C06;&#x5728;30&#x79D2;&#x540E;&#x6E05;&#x7406;&#x751F;&#x7269; - delay 10 - actionbar! &#x5C06;&#x5728;20&#x
BreezeCloud
2022/10/04
1.4K0
清理Xcode
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53992611
用户1451823
2018/09/13
1.1K0
清理Xcode
Linux清理磁盘(定位高占用-->清理)
定位 df -ah可以通过 User% 那一列哪看到个占用多。 进入根目录,查询大文件与目录 cd / du -sh * | sort -n # 查看大小1GB以上的目录并且排序 du -h --max-depth=1 |grep 'G' |sort 迭代执行以上操作,定位到可以删除的大文件,将其删除即可。
bboy枫亭
2021/12/07
3.7K0
问题解决:Ubuntu 磁盘空间占满如何清理
磁盘空间占满了,有两种解决办法:开源节流。这里我讲节流。 一个命令(从根目录开始): du -h --max-depth=1 该命令用于罗列当前目录下一级以内东西大小,转换成普通人能看的。 递归。 找到病灶之后,如果不敢删,百度一下。一般如果是日志啥的但删无妨。 我找到是在 var 下面的 docker,于是百度了一下解决方法: docker system prune -a 使用的时候建议将要保留的镜像打开,不然会全给你清理了。它有给英文提示。
看、未来
2022/05/06
1.2K0
Windows更新清理工具 (winsxs 清理工具)
Windows 更新清理工具是一款效果非常显著的Windows7、Windows8操作系统清理优化工具!经常安装系统的朋友相比有所体会,刚刚安装完成的Win7、Win8其实占的空间并不大,去掉页面文件和休眠文件后,真正的系统只几个G而已,但如果你给系统升级了补丁后,你会发现系统所需要占用的空间直线上升!轻松突破10G的门槛!加上休眠文件和页面文件,本来预留给系统的30G空间马上变得也不富裕了。 究其原因,在于系统目录下的WinSxS目录占用了大量的空间!在我们安装了大量的系统更新后,新的系统文件会替代旧
张善友
2018/01/19
11.8K1
Windows更新清理工具 (winsxs 清理工具)
代码乱码问题
vs studio默认编码使用unicode,qt creator编辑器代码在vs中不识别错误
sofu456
2023/07/10
1330
代码乱码问题
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
Python进阶者
2020/09/30
1K0
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
刘早起
2020/08/20
1.4K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
Windows 10是目前广泛使用的操作系统之一。由于长时间运行Windows 10电脑,会积累大量临时文件、日志和其他不需要的文件,导致系统变慢并占用磁盘空间。
用户8551789
2023/04/10
3.8K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
下一个问题,你合理清理内存了吗?
大家好,我是光城,没想到昨日问题留言竟然这么多人,那么这个系列,我也将继续持续下去,今天先来给大家答案,接下来给出一个新问题。
公众号guangcity
2022/04/27
2120
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
小小詹同学
2020/09/08
5080
10行Python代码自动清理电脑内重复文件,解放双手!

相似问题

查找Roslyn默认的可空上下文

25

JBehave空上下文

10

setUserVisibleHint中的空上下文

216

隐藏空上下文菜单

10

异步上下文管理器

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文