C++main函数结束后程序运行在哪里-创新互联

今天单步调试时按F11按多了,main函数结束后程序忽然跳到了exe_common.inl里面!

成都创新互联总部坐落于成都市区,致力网站建设服务有成都网站制作、成都做网站、网络营销策划、网页设计、网站维护、公众号搭建、微信小程序、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

于是兴致大起,写了一个比Hello World还简单的程序来做实验:

int main()
{
    return 0;
}

简单不?这个不是重点,我们现在开始调试

按4下F11就跳到了exe_common.inl里

又按4下F11,VS提示未找到telemetry.cpp,于是手动创建了一个空的, 看看能不能迷惑住VS,居然真的迷惑住了 

||ヽ(* ̄▽ ̄*)ノミ|Ю

又按了大约10次F11,VS又提示需要 traceloggingprovider.h,于是又创建了一个(#^.^#)

又按了5下F11,它跳回了telemetry.cpp里面。又按了两下,他又跳到了exe_common.inl中。

又按了两下,跳到了utility_desktop.cpp里面,再按11下,又跳回去了。

再按两下,运行到了函数调用exit(main_result);里面,跳到这里程序才算退出了。

但是问题又来了:它调用exit函数才退出,为什么貌似没有执行exit函数呢?它直接退出了。

最后整理一下函数/模块使用次序(括号里的是模块,不在括号里的是函数):

  1. (源.cpp)main
  2. (exe_common.inl)invock_main
  3. (exe_common.inl)__telemetry_main_return_trigger
  4. (telemetry.cpp)
  5. (traceloggingprovider.h)
  6. (telemetry.cpp)
  7. (exe_common.inl)
  8. (utility_desktop.cpp)__scrt_is_managed_app
  9. (exe_common.inl)exit

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:C++main函数结束后程序运行在哪里-创新互联
本文地址:http://pwwzsj.com/article/ipesc.html