linux学习 运行时确定程序出错的位置
首先,在编译程序时,增加-g选项,使执行文件包含符号信息。其次,在程序开始运行时,调用api函数设置信号处理函数(如signal(), sigaction()等),用来处理各种信号。例如程序发生”除0错误”时,就会发出一种信号。最后,完成一个函数堆栈输出函数。用backtrack()获取函数调用堆栈,然后用backtrace_symbols()转换为字符串来显示。
我在eclipse环境下,完成了demo:
1. 用鼠标右键单击工程,选择属性,弹出属性对话框。
2. 在属性对话框中,选择Build->setting。在g++/gcc编译属性中添加编译参数”-g”。
3. 创建一个void trace_show(int sig)函数,用来处理信号。在其中输出函数调用堆栈信息。
4. 在程序启动位置,调用sigaction()函数。
附录:信号表
名称 默认动作 说明
SIGHUP 终止进程 终端线路挂断
SIGINT 终止进程 中断进程
SIGQUIT 建立CORE文件 终止进程,并且生成core文件
SIGILL 建立CORE文件 非法指令
SIGTRAP 建立CORE文件 跟踪自陷
SIGBUS 建立CORE文件 总线错误
SIGSEGV 建立CORE文件 段非法错误
SIGFPE 建立CORE文件 浮点异常
SIGIOT 建立CORE文件  
相关文档:
首先,配置RedBoot的IP及其tftp服务器IP,装好tftp服务器,需要下载的内核及内存镜象应放在服务器的/tftpboot目录下
配置RedBoot的指令是
> fconfig
注意:启动的延时不要设为0,否则以后就很难再更改系统了
然后要执行flash存储器的初始化工作:
> fis init
之后,将kernel与ramdisk.gz通过tftp下载至内存并写 ......
Linux内存线性地址空间大小为4GB,分为2个部分:用户空间部分(通常是3G)和内核空间部分(通常是1G)。在此我们主要关注内核地址空间部分。
内核通过内核页全局目录来管理所有的物理内存,由于线性地址前3G空间为用户使用,内核页全局目录前768项(刚好3G)除0、1两项外全部为0,后256项(1G)用来管理所有的物 ......
今天又学了环境变量的设置,感受比较深一些,首先把我从网上看到的知道和大家分享一下。
环境变量是和Shell紧密相关的,用户登 录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前 ......
我所讲的是windows真实系统上有vmware的linux系统,将windows下的一个文件夹共享,如何挂载到虚拟机的linux系统下,也就是如何让linux系统试用windows下的一个文件夹。
大家也许不太明白,下面我就做一些截图
双击share folder,一定要保证sh ......