易截截图软件、单文件、免安装、纯绿色、仅160KB

嵌入式linux异常跟踪怎么实现?

我的进程中经常出现一些莫名奇妙的异常,因为进程中线程比较多,而且是嵌入式环境,原因很难查找。
能否在出现异常的时候,捕获异常事件,获取每个线程的堆栈等信息,从而分析出每个进程的函数调用执行情况。
主要有两个问题
1、怎么获取进程中每个线程的堆栈等信息?
2、怎么在编译目标文件的时候,生成函数和变量的地址向量表?
先谢谢了!


嵌入式 没搞过 帮顶

嵌入式环境和非嵌入式应该采用的方法应该差不多,只是嵌入式编译器不一样吧

你的线程函数体式共用的还是私用的?

线程堆栈是由线程库和操作系统决定的。不知道你说的堆栈信息指的是?堆栈中存储的变量,还是别的?

嵌入式 貌似很难 没搞过

这样跟踪似乎比较麻烦,
我觉得可以在编码阶段在异常处理函数中加上debug 跟踪信息
比如 加调试开关的 打印语句


嵌入式应该也有它自带的调试工具吧,类似于gdb
顺便顶一下

回楼上。
线程的函数体是公用的,在同一个进程内都可以访问。
主要是想获取线程的信息,包括,当前线程的状态,运行,挂起等。
获取堆栈信息,堆栈的栈顶,栈底,为当前栈的位置,进一步分析线程调用的函数和变量状态,检测是否有缓冲区异常等。

我在其他操作系统中已经实现此功能此功能。

我知道这不是一种好办法,主要是进程比较多,靠printf比较难分析,信息异常的时候容易丢失。




已经可以获取到堆栈和函数映像表,但无法知道栈的位置,和线程状态。

linux多线程调试,有没有什么好的办法,和工具?


在嵌入式的多线程编程中,调试是不可或却的一


相关问答:

嵌入式Linux缩减问题

大家好,本人目前刚刚接触Linux。现在公司的项目需要缩减Linux的Kernel和APP部分的Code Size。目前我们使用的是Linux2.6.22.15版本,应用于ADSL Modem(家庭网关)。

1.我们产品应用是ADSL Gateway,Kernel部 ......

关于LINUX操作系统的安装

    我没有安装操作系统的经验,即使是WINDOWS。现在想在LINUX操作系统大环境下学C语言,又要买本本,请问如果操作系统安装不当,会不会对电脑造成什么大的破坏?有没有必要先买一个二手电脑练一下LINUX的 ......

使用Struts2上传文件,在linux下报错

使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......

关于Linux gcc编译器的问题

原先的GCC版本为4.1.2,我重新编译安装了GCC4.3.2,但是编译完程序运行程序时会出现version `GLIBCXX_3.4.9' not found 这个问题.在网上面查了一下是软连接的问题。但是本人对Linux不太熟悉,“应该制作RPM包然后 ......

windows文件系统 比 linux文件系统慢在哪儿?

一直用svn来做资源的管理,
现在发现windows下取svn 要10个小时左右(资源大约有20G,全是小文件)
linux下取仅用40分钟,

请问linux的文件系统在哪儿比windows文件系统强力?

svn 可够慢的。

在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号