标签: stack-trace

XCode全局断点不显示堆栈跟踪

我从位置libobjc.A.dylib和CoreFoundation设置了全局断点.我运行我的iPhone应用程序,它遇到了异常.XCode在断点处停止但在日志中没有显示任何错误:待定断点1 - "objc_exception_throw"已解决待定断点2 - " - [NSException raise]"已解决

我单击控制台上的"继续"按钮,在启用断点之前,我收到了与之前无法区分的错误.

如何获得设置全局断点的堆栈跟踪应该生成?

iphone xcode breakpoints stack-trace

2
推荐指数
1
解决办法
2746
查看次数

如何在非调试模式下获取Adobe AIR全局运行时错误的堆栈跟踪?

新版本AIR使我们能够全局捕获运行时错误并处理它们.问题是除了错误ID和错误消息和名称之外,它没有堆栈跟踪或有关错误的任何有用信息.例如,它可能告诉我发生了空指针异常,但它不会告诉我在哪里或哪个方法或任何东西.运行时的调试版本为我们提供了所有这些,但是当应用程序部署到客户时,它没有在调试版本上运行,因此没有任何有用的信息可用.我想知道这个小组是否有任何关于如何在AIR应用程序中更好地记录错误的建议,以便更好地支持产品.有什么建议?

air global stack-trace

2
推荐指数
1
解决办法
2022
查看次数

当我触摸UIVIew时,CALayer/UIView崩溃了

我使用自定义图层绘制我的UIView.为了使图层无效和更新,我需要将我的视图设置为我的代表CALayer.当这样做是正确吸取我的文字,但是当视图接收触摸应用程序崩溃.我做错了什么?

- (void) layoutSubView {
    if (drawLayer == nil) {
        drawLayer = [[CALayer alloc] init];
        [drawLayer setDelegate:self];
        [[self layer] addSublayer:drawLayer];
    }
    [drawLayer setFrame:[self bounds]]; 
    [drawLayer setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)

上面是我设置CALayer的代码,下面是重写的drawLayer方法.

- (void) drawLayer:(CALayer *)layer 
     inContext:(CGContextRef)ctx {

        if (layer == drawLayer) {
        UIGraphicsPushContext(ctx);
        [self drawTitle:ctx];
        UIGraphicsPopContext();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是堆栈.

在此输入图像描述

iphone xcode stack-trace calayer uiview

2
推荐指数
1
解决办法
914
查看次数

Log4j JDBCAppender用于记录stacktraces

使用org.apache.log4j.jdbc.JDBCAppender,我怎样才能记录warnerror使用PatternLayout.

我正在登录

logger.warn("warning description", e);
logger.error("error description", e);
Run Code Online (Sandbox Code Playgroud)

我将String描述放入表中,但Throwable的堆栈跟踪现在在哪里.是否有其他参数可以通过PatternLayout.目前我正在使用

"INSERT INTO app_logs (app, log_date, log_level, location, loc, message) VALUES ('my-apps-name', '%d{ISO8601}','%p', '%C.java', '%C{1}.java:%L', '%m')" 
Run Code Online (Sandbox Code Playgroud)

进入一张桌子

TABLE `app_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `app` varchar(255) DEFAULT NULL,
  `log_date` varchar(255) DEFAULT NULL,
  `log_level` varchar(255) DEFAULT NULL,
  `location` varchar(255) DEFAULT NULL,
  `loc` varchar(255) DEFAULT NULL,
  `message` text, 
  PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)

log4j jdbc stack-trace

2
推荐指数
1
解决办法
9959
查看次数

故障期间的backtrace()函数(SIGSEGV)信号处理程序

我已阅读(参见此处)在Linux下的故障信号处理程序(例如处理时)使用backtrace()打印堆栈跟踪的"常见做法" SIGSEGV是:

1 从未记录的结构中获取指令指针(EIPRIP)sigcontext.

2用指令指针替换堆栈轨迹中的第2帧,因为第一帧是信号处理程序,第2帧应该libcsigaction代码中,它覆盖了发生故障的原始帧.

3从新更换的第2帧开始打印回溯.

在我的测试中(在x86_642.6内核上),实际上发生故障的原始帧存在于backtrace()第3帧中给出的堆栈跟踪中 - 第一个是信号处理程序,第二个是libc信号处理代码.

内核信号处理的这种变化是否记录在某个地方,您可以参考我?

在我看来,结果是你可以避免从指令指针替换任何帧,并从第backtrace()3帧开始打印堆栈跟踪,但我想确认这是已知的行为和正确的方法.

c linux stack-trace

2
推荐指数
1
解决办法
4272
查看次数

如何防止Android SQLite将堆栈跟踪转储到logcat?

在Android 2.3.3上,我正在使用API​​方法批量导入我的一个SQLite表:

SQLiteDatabase.insert(String table,String nullColumnHack,ContentValues values)

它工作正常,但如果任何行存在数据库错误(例如约束错误),则会将完整的堆栈跟踪写入Android Logcat,这会迅速填满.

如何关闭此堆栈跟踪?

我已经处理了任何异常抛出但是Logcat正在SQLite库代码中被污染.

我担心移动设备的性能.

  • 导入的事务已经启用
  • 预加载的DB是不可能的,因为数据可能会改变

应该强制执行约束并且我将处理违规,但是Logcat中每次违规的20行堆栈跟踪乘以数百次违规是我想要关闭的.

不幸的是,我也无法使用Android Froyo引入的高级冲突处理,因为应用程序也必须在旧设备上运行.

干杯.

sqlite android stack-trace logcat

2
推荐指数
1
解决办法
1368
查看次数

异常属于堆栈跟踪中的哪个方法?

在堆栈跟踪中 - 在最后一个方法中,在最后一个方法之前的方法中或在随后的方法中发生异常(即由于异常而没有达到那么远)?

那么,在下面的例子中,Method3是发生异常的方法吗?或者它是'Method4'(它只能完成方法3)?

STACK TRACE:
Method3()
Method2()
Method1()
Run Code Online (Sandbox Code Playgroud)

c# asp.net debugging exception stack-trace

2
推荐指数
1
解决办法
105
查看次数

如何在Android上打印堆栈跟踪(带符号功能名称)?

这个问题已被多次询问,但它从未得到过真正的回答.今天我花了5到6个小时试图将一些库移植到Android(libunwind,liwdfl),这些库可能从未打算用于ARM.当然无济于事.

问题是Android缺乏backtrace/ backtrace_symbols功能.有没有人找到一种方法来打印stacktrace,比如收到SIGSEGV?

c++ android stack-trace android-ndk

2
推荐指数
1
解决办法
4943
查看次数

是Throwable类的printStackTrace()和异步

我正在测试一些代码来读取类路径中可用的文件,但最后我得到了一些与Throwable类的printStackTrace()方法相关的有趣的东西.

这是代码:

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class Main {

    public static void main(String[] args) throws IOException, URISyntaxException {
        try {
            System.out.println("before-test1");
            test1(); // will throw exception
            System.out.println("after-test1");
        } catch (Exception e) {
            System.out.println("entering catch-1");
            e.printStackTrace();
            System.out.println("exiting catch-1");
        }

        try {
            System.out.println("before-test2");
            test2();
            System.out.println("after-test2");
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            System.out.println("before-test3");
            test3();
            System.out.println("after-test3");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void test1() throws IOException …
Run Code Online (Sandbox Code Playgroud)

java asynchronous exception stack-trace

2
推荐指数
1
解决办法
408
查看次数

为什么我在创建自己的异常时会得到一个空的堆栈跟踪?

我继承了Exception类来创建自己的异常.类似下面的代码

public class ApplicationException extends Exception {
  ApplicationException(String errorMessage) {
    super(errorMessage); 
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是堆栈跟踪始终为空.以下代码将不会向控制台写入任何内容.

ApplicationException(String errorMessage) {
  super(errorMessage); 
  System.out.println(this.getStackTrace());
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它是空的,因为它Throwable(String)正在呼唤fillInStackTrace method.有没有办法填写Stack,还是我应该做的其他事情?

java exception stack-trace

2
推荐指数
1
解决办法
1304
查看次数