怎么获取异常堆栈信息中的详细信息

cuda-内存位置异常,怎么查看内存位置,以及内存中的信息
作者:用户
浏览:1559 次
内存位置异常,怎么查看内存位置,以及内存中的信息ipiv=(int*)malloc(sizeof(int)*count_1);A=(float*)malloc(sizeof(float)*b*coun
内存位置异常,怎么查看内存位置,以及内存中的信息
ipiv=(int*)malloc(sizeof(int)*count_1);
A=(float*)malloc(sizeof(float)*b*count_1);
Ta=(float*)malloc(sizeof(float)*count_1*count_1);
invTa=(float*)malloc(sizeof(float)*count_1*count_1);
det=(float*)malloc(sizeof(float)*1);
eigRe=(float*)malloc(sizeof(float)*count_1);
eigIm=(float*)malloc(sizeof(float)*count_1);
//大小为uu count_1*numPaa numP vol numP
uu=(float*)malloc(sizeof(float)*count_1*numPixel);
aa=(float*)malloc(sizeof(float)*numPixel);
vol=(float*)malloc(sizeof(float)*numPixel);
uMulInv=(float*)malloc(sizeof(float)*count_1*numPixel);
//设备端申请空间;
//float *d_A,*d_Ta,*d_invTa,*d_eigRe,*d_eigIm,*d_uu,*d_aa,*d_vol,*d_uMulI
//float *d_
cudaMalloc((void**)&d_ipiv,sizeof(int)*count_1);
cudaMalloc((void**)&d_A,sizeof(float)*b*count_1);
cudaMalloc((void**)&d_Ta,sizeof(float)*count_1*count_1);
cudaMalloc((void**)&d_invTa,sizeof(float)*count_1*count_1);
cudaMalloc((void**)&d_det,sizeof(float)*1);
cudaMalloc((void**)&d_eigRe,sizeof(float)*count_1);
cudaMalloc((void**)&d_eigIm,sizeof(float)*count_1);
//大小为uu count_1*numPaa numP vol numP
cudaMalloc((void**)&d_uu,sizeof(float)*count_1*numPixel);
cudaMalloc((void**)&d_aa,sizeof(float)*numPixel);
cudaMalloc((void**)&d_vol,sizeof(float)*numPixel);
cudaMalloc((void**)&d_uMulInv,sizeof(float)*count_1*numPixel);
caculateA&&&1,b&&&(d_OMEGA,d_A,d_First,b,count_1);
/*cudaMemcpy(A,d_A,sizeof(float)*count_1*b,cudaMemcpyDeviceToHost);
char showA[64] = {0};
sprintf(showA, "%f
", A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8]);
::MessageBox(NULL, showA,"showA",
stat=cublasSgemm(handler,CUBLAS_OP_T,CUBLAS_OP_N,count_1,count_1,b,
&al,d_A,b,d_A,b,&bet,d_Ta,count_1);
cudaMemcpy(d_invTa,d_Ta,sizeof(float)*count_1*count_1,cudaMemcpyDeviceToDevice); //d_Ta复制给d_invTa,因为稍后的计算会覆盖;
/*//显示ATA;
cudaMemcpy(Ta,d_Ta,sizeof(float)*count_1*count_1,cudaMemcpyDeviceToHost);
char showATA[64] = {0};
sprintf(showATA, "%f
", Ta[0],Ta[1],Ta[2],Ta[3],Ta[4],Ta[5],Ta[6],Ta[7],Ta[8]);
::MessageBox(NULL, showATA,"showATA",
//求特征值;
culaInitialize();
culaDeviceSgeev('N','N',count_1,d_Ta,count_1,d_eigRe,d_eigIm,NULL,count_1,NULL,count_1); //求A*A转置特征值;
//求行列式;
cudaMemcpy(eigRe,d_eigRe,sizeof(float)*count_1,cudaMemcpyDeviceToHost);
cudaMemcpy(eigIm,d_eigIm,sizeof(float)*count_1,cudaMemcpyDeviceToHost);
det[0]=detValue(eigRe,eigIm,count_1);
//显示行列式;
char showDet[64] = {0};
sprintf(showDet, "%f
", det[0],det[1],det[2],det[3],det[4],det[5],det[6],det[7],det[8]);
::MessageBox(NULL, showDet,"showDet",
//求逆矩阵;
culaDeviceSgetrf(count_1,count_1,(float *)d_invTa,count_1,(int *)d_ipiv);
culaDeviceSgetri(count_1,(float *)d_invTa,count_1,(int *)d_ipiv);
//显示逆矩阵;
cudaMemcpy(invTa,d_invTa,sizeof(float)*count_1*count_1,cudaMemcpyDeviceToHost);
char showInv[64] = {0};
sprintf(showInv, "%f
", invTa[0],invTa[1],invTa[2],invTa[3],invTa[4],invTa[5],invTa[6],invTa[7],invTa[8]);
::MessageBox(NULL, showInv,"showInv",
//求体积最大;
caculateUu&&&dimGrid,dimBlock&&&(d_subData,d_A,d_uu,b,w,numPixel,count_1);
cudaMemcpy(uu,d_uu,sizeof(float)*count_1*numPixel,cudaMemcpyDeviceToHost);
char showUU[64] = {0};
sprintf(showUU, "%f
", uu[0],uu[1],uu[2],uu[300],uu[400],uu[500],uu[600],uu[700],uu[800]);
::MessageBox(NULL, showUU,"showUU",
caculateUinv&&&dimGrid,dimBlock&&&(d_uMulInv,d_invTa,d_uu,w,count_1,numPixel); //求uMulI
cudaMemcpy(uMulInv,d_uMulInv,sizeof(float)*count_1*numPixel,cudaMemcpyDeviceToHost);
char showUinv[64] = {0};
sprintf(showUinv, "%f
", uMulInv[0],uMulInv[1],uMulInv[2],uMulInv[300],uMulInv[400],uMulInv[500],uMulInv[600],uMulInv[700],uMulInv[800]);
::MessageBox(NULL, showUinv,"showUinv",
caculateAa&&&dimGrid,dimBlock&&&(d_uu,d_aa,d_uMulInv,w,count_1,numPixel);//求
cudaMemcpy(aa,d_aa,sizeof(float)*numPixel,cudaMemcpyDeviceToHost);
char showAa[64] = {0};
sprintf(showAa, "%f
", aa[0],aa[1],aa[2],aa[300],aa[400],aa[500],aa[600],aa[700],aa[800]);
::MessageBox(NULL, showAa,"showAa",
caculateVol&&&dimGrid,dimBlock&&&(d_aa,d_vol,d_tempMt,w,det); //求体积;
cudaMemcpy(vol,d_vol,sizeof(float)*numPixel,cudaMemcpyDeviceToHost);
char showVol[64] = {0};
sprintf(showVol, "%f
",vol[0],vol[1],vol[2],vol[300],vol[400],vol[500],vol[600],vol[700],vol[800]);
::MessageBox(NULL, showVol,"showVol",
stat=cublasIsamax(handler,numPixel,d_vol,1,&e3);
//e3=e3-1;
//显示部分;
char E3[8] = {0};
sprintf( E3, "%d
::MessageBox(NULL,E3,"Next Duanyuan",
duanyuanInd[count_duanyuan]=e3;
vtKernel&&&1,b&&&(d_data,d_Vt,numPixel,b,e3);
omegaKernel&&&1,b&&&(d_Vt,d_OMEGA,b,count_duanyuan);
//端元读入OMEGA中;
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 cudaError_enum。
“kernelTEST1.exe”: 已加载“C:WindowsSystem32uxtheme.dll”
“kernelTEST1.exe”: 已加载“C:WindowsSystem32dwmapi.dll”
“kernelTEST1.exe”: 已加载“C:WindowsSystem32cryptbase.dll”
“kernelTEST1.exe”: 已加载“F:Program FilesDict6.3.68.1111WordStrokeHelper32.dll”
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0019fa18 处的 cudaError_enum。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0019facc 处的 cudalib::CudaRuntimeException。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x 处的 boost::exception_detail::clone_implcula::InfoException。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0019fab4 处的 boost::exception_detail::clone_implcula::InfoException。
kernelTEST1.exe 中的 0x7544812f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0019fa34 处的 boost::exception_detail::clone_implcula::InfoException。
程序“[5796] kernelTEST1.exe: 本机”已退出,返回值为 0 (0x0)。
用VS调试你的程序,在报错的地方下断点,打开内存、反汇编、调用堆栈等窗口可以查看分析。
解决方案二:
【云栖快讯】中办国办印发《推进互联网协议第六版(IPv6)规模部署行动计划》加快推进基于 IPv6 的下一代互联网规模部署,计划指出2025年末中国 IPv6 规模要达到世界第一,阿里云也第一时间宣布了将全面提供IPv6服务,那么在全面部署 IPV6 前,你需要了解都在这儿&&
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛出的异常排查错误。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以用UncaughtExceptionHandler捕获全局异常,对异常做出处理。比如我们可以获取到抛出异常的时间、手机的硬件信息、错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug。
自定义异常类实现UncaughtExceptionHandler接口,当某个页面出现异常就会调用uncaughtException这个方法,我们可以在这个方法中获取异常信息、时间等,然后将获取到的信息发送到我们指定的服务器
* 自定义的 异常处理类 , 实现了 UncaughtExceptionHandler接口
* @author Administrator
public class MyCrashHandler implements UncaughtExceptionHandler {
// 需求是 整个应用程序 只有一个 MyCrash-Handler
private static MyCrashHandler myCrashH
private DoubanS
private SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
//1.私有化构造方法
private MyCrashHandler(){
public static synchronized MyCrashHandler getInstance(){
if(myCrashHandler!=null){
return myCrashH
myCrashHandler
= new MyCrashHandler();
return myCrashH
public void init(Context context,DoubanService service){
this.context =
this.service =
public void uncaughtException(Thread arg0, Throwable arg1) {
System.out.println("程序挂掉了 ");
// 1.获取当前程序的版本号. 版本的id
String versioninfo = getVersionInfo();
// 2.获取手机的硬件信息.
String mobileInfo
= getMobileInfo();
// 3.把错误的堆栈信息 获取出来
String errorinfo = getErrorInfo(arg1);
// 4.把所有的信息 还有信息对应的时间 提交到服务器
service.createNote(new PlainTextConstruct(dataFormat.format(new Date())),
new PlainTextConstruct(versioninfo+mobileInfo+errorinfo), "public", "yes");
} catch (Exception e) {
e.printStackTrace();
//干掉当前的程序
android.os.Process.killProcess(android.os.Process.myPid());
* 获取错误的信息
* @param arg1
private String getErrorInfo(Throwable arg1) {
Writer writer = new StringWriter();
PrintWriter pw = new PrintWriter(writer);
arg1.printStackTrace(pw);
pw.close();
String error= writer.toString();
* 获取手机的硬件信息
private String getMobileInfo() {
StringBuffer sb = new StringBuffer();
//通过反射获取系统的硬件信息
Field[] fields = Build.class.getDeclaredFields();
for(Field field: fields){
//暴力反射 ,获取私有的信息
field.setAccessible(true);
String name = field.getName();
String value = field.get(null).toString();
sb.append(name+"="+value);
sb.append("\n");
} catch (Exception e) {
e.printStackTrace();
return sb.toString();
* 获取手机的版本信息
private String getVersionInfo(){
PackageManager pm = context.getPackageManager();
PackageInfo info =pm.getPackageInfo(context.getPackageName(), 0);
info.versionN
} catch (Exception e) {
e.printStackTrace();
return "版本号未知";
创建一个Application实例将MyCrashHandler注册到整个应用程序上,创建出服务并进行传递:
* 整个(app)程序初始化之前被调用
* @author Administrator
public class DoubanApplication extends Application {
public NoteE
public void onCreate() {
super.onCreate();
String apiKey = "0fab7f9aa21f39cd2f027ecfe65dad67";
String secret = "87fc1c5e99bfa5b3";
// 获取到service
DoubanService myService = new DoubanService("我的小豆豆", apiKey,
myService.setAccessToken("1fa4e5be0f808a0b5eeeb13a2e819e21", "56a622c1138dbfce");
MyCrashHandler handler = MyCrashHandler.getInstance();
handler.init(getApplicationContext(),myService);
Thread.setDefaultUncaughtExceptionHandler(handler);
hunankeda110
浏览: 631052 次
来自: 深圳
不能直接运行吧
activityRootView.getRootView(). ...
引用引用引用[u][u][u][u][u][u][b][/b] ...
关于,你的问题,我在这里找到了答案http://blog.cs ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'记得刚开始学习Java的时候,为了跟踪程序的进程及异常信息,到处添加System.out.println()语句,到后来虽然也学会了配置并使用Log4j,但一直都只是用用而已,没有去深入地...
在进行Java B/S架构开发时,经常有这样的场景:后端处理业务逻辑,前端负责展示,当后端处理出现异常时,如何把错误信息展示给前台呢?错误信息栈通常很多,对开发人员查找问题比较方便,但对于客户来说,打...
平时写java代码时,想看抛出的异常信息,来找出具体的异常点,我们常常会用Exception.toString ()或者 Exception.getMessage()来取得异常信息,再把它print到...
获取Exception的详细信息
我自己运行测试的环境:windowsXP、eclipse3.5.1、jdk1.6
下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回...
一、前言在java中,异常机制是非常有用的构成部分,异常信息对于查找错误来说是必不可少至关重要的信息,因此我们希望在发生错误的时候先看到捕捉到底异常信息。然而,通常的异常信息的输出使用e.printS...
转自:http://hi.baidu.com/johnnycode/item/3b945e3fb0d43
看下面例子:
public class Test {
平时写java代码时,想看抛出的异常信息,来找出具体的异常点,我们常常会用Exception.toString ()或者 Exception.getMessage()来取得异常信息,再把它print到...
平时写java代码时,想看抛出的异常信息,来找出具体的异常点,我们常常会用Exception.toString ()或者 Exception.getMessage()来取得异常信息,再把它print到...
Exception loading sessions from persistent storage
Java.io.EOFException
at java.io.ObjectInputSt...
异常(Exception)处理本文地址:http://blog.csdn.net/caroline_wendyJava异常(Exception)处理,会生成一个异常对象,使用抛出异常(throws E...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)事件查看器中的系统日志出现多处错误信息应该怎么办?
答案长度必须超过10个字,请勿发布无效或违法言论。
(共有1个回答)
1.先禁用事件日志服务,接着重新启动系统。2.从%systemroot%\system32\config 目录中删除受损日志文件appevent.evt、secevent.evt、sysevent.evt 。(secevent.evt、sysevent.evt可能是并存或者只有一个),这样,现有的事件数据将会全部丢失,但是新的日志文件将在事件日志服务重新启动时创建并开始收集新的事件数据。3.restart 事件日志服务,并且重新启动系统。OK!此时事件日志文件修复完毕!开机将不会出现错误报告! 在系统启动时至少有一个服务器或驱动程序产生错误。详细信息请用事件查看器查看事件日志。 关于这个问题一直都没有查出原因了,也算是一种失败吧.目前来说,只能是眼不见,心不烦了.也不想去深究了.因此推荐下面这个方法,效果还不错.只要是看不见了,心里就舒服多了.server2003/xp/2000 每次弹出服务控制管理器“系统启动时至少有一个服务或驱动程序产生错误”解决方法。解决方法:把以下注册表用记事本编辑,保存为**.reg ,直接点击导入即可。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows] "NoPopUpsOnBoot"=dword: 如果导入失败,请进程手动操作。找到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows] 右键新建dword值,命名为NoPopUpsOnBoot,设其值为“1” 以上方法来源于网上搜集Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=1682264
Windows系统的日志文件有应用程序日志、安全日志、系统日志等,它们默认的地址为:%systemroot%\system32\config
有的朋友不知道Win7系统如何删除事件查看器日志,下面我就来告诉你们具体的方法吧!Win7系统删除事件查看器全部日志方法:1、 首先大家需要的是打开事件查看器。
●电脑重启的原因
●●一、软件
●1.病毒破坏
自从有了计算机以后不久,计算机病毒也应运而生。当网络成为当今社会的信息大动脉后,病毒的传播更加方便,
点击【不能吃】【知不知道】输入关键词看能不能找到
诺顿事件已发生8年多,导致这次事件的主要原因如下:
1、诺顿杀毒软件升级病毒库后,会把Windows XP系统的关键系统文件当作病毒清除,重启后系
你说说的是事件查看器里的日志吗?一般都是管理员排错用的,你要是不需要可以删除。其实也占不了多少空间的,很小。
美国海岸的水,是从日本海那边留过去的。在日本政府有意地将核污染物排到海里后,他扩散到美国那边是最快的,浓度最大的。其次,美国的检测手段更先进也是一种因素。这个启
Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flu
前不久还看见电视上说婴儿在医院被抱走了!不过也不用太担心的
不会啊,目前为止从未出现过这种情况,你是不是有点太杞人忧天了呢,毕竟那可是源达投顾公司开发的啊!
大家都关注
(C)2017 列表网&琼ICP备号-12&增值电信业务经营许可证B2-&java通过反射执行方法,获取执行的方法中的异常信息
Method m = ...;&&
m.invoke(...);//反射调用方法&&&
}catch(Exception e){&&
System.out.println(e.getMessage);//获取不到异常信息&&
Method m = ...;
m.invoke(...);//反射调用方法
}catch(Exception e){
System.out.println(e.getMessage);//仅仅打出异常信息的名称
StringWriter writer = new
StringWriter();
e.getCause().printStackTrace(new PrintWriter(writer,true));
System.out.println("详细的异常信息:"+writer.toString());
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 java获取异常信息 的文章

 

随机推荐