linux-注释掉printf语句程序出现段错误

问题描述

注释掉printf语句程序出现段错误

最近在Linux下开发一个软件,为了调试方便加入了printf语句输出相关变量的值,开发完成后软件运行很正常,可当我把printf语句注释掉后再运行软件却总是出现segment fault,若把printf语句加上又能正常运行,按理说注释掉printf语句不应该会引起此类错误呀,搞得我一头雾水,还望大神们指点迷津

解决方案

可能你注释的时候没有注意括号和if语句

解决方案二:

这个不应该是printf引起的,看是不是注释了影响了代码的处理逻辑等

解决方案三:

把其他代码注释掉了吧

解决方案四:

做这个调试的时候 最好在printf前后部分加上预编译
#ifdefine debug=1
printf(">>>>>>>>")
#endif

程序写完这后直接不定义这个debug就好。可能我写的不对 但是方法是这样啊

解决方案五:

printf语句的参数也可以是表达式,换句话说,printf语句也可以修改(全局/本地)变量的值,我不认为是printf语句本身的问题,应该是你的printf语句修改了某些数据,类似全局本地变量之类的。 其实你可以贴出来你注释掉的printf语句来看看。

解决方案六:

可以用一个延时代替printf试试,一般加不加printf也就多一会延时。

时间: 2024-08-18 06:43:13

linux-注释掉printf语句程序出现段错误的相关文章

jsp-JSP注释问题:<!-- -->注释掉的语句依然起作用

问题描述 JSP注释问题:<!-- -->注释掉的语句依然起作用 <%@ page contentType="text/html;charset=gb2312" %> <!-- <jsp:useBean id="simple" scope="page" class="cn.mldn.lxh.demo.SimpleBean"/> --> <html><head&g

printf-段错误:您的程序发生段错误,可能是数组越界,这是怎么回事

问题描述 段错误:您的程序发生段错误,可能是数组越界,这是怎么回事 #include<stdio.h> int main(void) { int N,p,i,j,index,temp; int M; int input[10001]; int cnt[10001]; scanf("%d%d",&N,&p); for(i=0;i<N;i++) { scanf("%d",input[i]); } for(i=0;i<N;i++)

linux c语言连接数据库之后赋值的段错误

问题描述 linux c语言连接数据库之后赋值的段错误 如图,此处段错误 具体功能是 我有一个结构体指针数组,申请空间后为他赋值 当只有一个结构体的时候没问题,但是超过一个的时候就出现这种情况 求分析为什么 解决方案 是不是有字符串指针等,你直接赋值看具体哪里出错了

这里应该是修改发帖时间的地方,可是最后一行不注释掉的话就会报出图示错误,怎么办啊

问题描述 usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;

Linux环境下段错误的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个

Linux环境下段错误的产生原因及调试方法小结_C 语言

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个

file-solaris下编译的程序执行是出现段错误

问题描述 solaris下编译的程序执行是出现段错误 编译器版本Reading specs from /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/specs Configured with: /sfw10/builds/build/sfw10-patch/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/ccs/bin/as --without-gnu-as --

嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误

    嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报  分类:   嵌入式(928)  一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的. 在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈.   [cpp] vie

linux下用core和gdb查询出现&quot;段错误&quot;的地方【转】

转自:http://blog.chinaunix.net/uid-30091091-id-5754288.html 原文地址:linux下用core和gdb查询出现"段错误"的地方 作者:草根老师   有些时候我们在一段C代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"段错误".   呵呵,这种问题我想很多人会经常遇到.遇到这种问题是非常无语的,只是提示了"段错误",接着什么都没 有,如果我们一味的去看代码找太疼苦了,因为我