题目描述
一个 C++ 程序,调试时在 main 函数第一行打断点,run 起来以后,没到断点就 crash 了。
有什么原因可能引起这个问题?
题目来源及自己的思路
这是我在面试今日头条上海,遇到的一道题目,完全没思路。
大佬教我
一个 C++ 程序,调试时在 main 函数第一行打断点,run 起来以后,没到断点就 crash 了。
有什么原因可能引起这个问题?
这是我在面试今日头条上海,遇到的一道题目,完全没思路。
大佬教我
main 函数前,先执行
+ load
方法,
再执行 C++ 的函数,
长这样,
__attribute__((constructor)) void pName(){
printf("来了 : %s \n",__func__);
}
+ load
方法中,也可能出错
补充 main 函数前,走的 CPP 方法类型
__attribute__((constructor)) void doBeforeMain(){
printf("试一试 : %s \n",__func__);
}
3 回答1.1k 阅读✓ 已解决
1 回答987 阅读✓ 已解决
4 回答776 阅读
1 回答855 阅读
1 回答887 阅读
1 回答653 阅读
1 回答761 阅读
既然在
main
第一行都没run
起来,我想是不是在第一行之前发生了错误?比如以下代码,你在main
第一行cout
打断点,没到断点就会crash
,因为在mian
函数之前,先执行了全局变量的构造函数。我简单想了一下,这也算个原因吧。应该还有一些别的原因会造成,看看别的大神怎么说。