标签: backtrace

从内核调用跟踪中获取行号

我正在尝试调试似乎是完成队列问题:

Apr 14 18:39:15 ST2035 kernel: Call Trace:
Apr 14 18:39:15 ST2035 kernel:  [<ffffffff8049b295>] schedule_timeout+0x1e/0xad
Apr 14 18:39:15 ST2035 kernel:  [<ffffffff8049a81c>] wait_for_common+0xd5/0x13c
Apr 14 18:39:15 ST2035 kernel:  [<ffffffffa01ca32b>]
ib_unregister_mad_agent+0x376/0x4c9 [ib_mad]
Apr 14 18:39:16 ST2035 kernel:  [<ffffffffa03058f4>] ib_umad_close+0xbd/0xfd
Run Code Online (Sandbox Code Playgroud)

是否可以将这些十六进制数字转换为接近行号的数字?

debugging kernel backtrace debug-symbols linux-kernel

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

***glibc检测到***./a.out:双免费或腐败(外出):0xbfe69600***

我正在做一个代表"学生"表的程序.它具有"ID","名字"和"姓氏"属性.我做了一个二维数组并将cout语句全部用于检查...正确的信息存储在正确的单元格中,但是我得到了一个我无法识别的错误..cpp文件的代码是:

#include "Table1.h"
#include <sstream>
#include <iostream>
using namespace std;

Table1::Table1(){

RowPos = 1;
ColPos = 0;

for(int i=1; i<16; i++)
{
    for(int j=0; j<3 ; j++)

        Students[i][j] = "FakeNull"; // fill the array with Null value
    }
}

string Table1::InsertStudent(string ID, string FN, string LN){

    Students[0][0] = "StudentID";
    Students[0][1] = "FirstName";
    Students[0][2] = "LastName";


    Students[RowPos][ColPos] = ID; //Assign ID to first column
    ColPos++; //Move to next column
    Students[RowPos][ColPos] = FN;
    ColPos++;
    Students[RowPos][ColPos] = LN;
    ColPos++;

    ColPos = 0;
    RowPos++; …
Run Code Online (Sandbox Code Playgroud)

c++ debugging free glibc backtrace

1
推荐指数
1
解决办法
3万
查看次数

OS X如何实现backtrace()?

有谁知道我在哪里可以找到实现OS X版本的代码backtrace()?我知道它可能在某个地方libSystem.B.dylib,所以我应该从Apple的只读开源存储库中获取该模块的源代码,但是我应该从哪里开始查看?

macos system backtrace

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

GDB - 它如何知道函数调用堆栈?

当使用gdb调试汇编程序时,bt会打印调用堆栈.

问题是:

  • (a) gdb是否根据rbp存储在当前函数的寄存器中的值以及先前rbp值的堆栈中的信息来了解?
  • 如果是,(b-1) gdb如何根据rbp值知道它是哪个函数?(b-2)-g在编译时指定选项时,堆栈库和函数之间的映射是否存储在可执行文件中?(b-3)如何读取该映射数据readelf?哪一部分?
  • 如果没有,(c)那么gdb如何跟踪函数调用堆栈?

assembly gdb stack-trace backtrace

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

如何在 Swift 中调用 backtrace_symbols()

在Objective-C中,我可以调用代码来获取回溯

void* callstack[128];
int frames = backtrace(callstack, 128);
char **strs = backtrace_symbols(callstack, frames);
Run Code Online (Sandbox Code Playgroud)

按进口 #include <execinfo.h>

但是在 Swift 中,我如何调用backtraceand backtrace_symbols,我在execinfo任何地方都找不到文件。

backtrace swift

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

有没有比使用backtrace()找到调用堆栈深度更便宜的方法?

我的日志代码使用backtrace()的返回值来确定当前的堆栈深度(用于漂亮的打印目的),但我可以从分析中看到这是一个非常昂贵的调用.

我不认为有更便宜的方法吗?请注意,我不关心帧地址,只有它们有多少.

编辑:这些日志记录功能遍布大型代码库,因此手动跟踪堆栈深度并不是一种选择.

c linux stack backtrace

0
推荐指数
1
解决办法
1630
查看次数

RSpec没有给我任何回溯

我试图用rspec获得回溯,但由于某种原因我不能让它工作.

这是测试文件:

require 'spec_helper'

describe ActivityReport do
  it "should create a new instance given valid attributes" do
  activity = Factory(:activity_report)
end
Run Code Online (Sandbox Code Playgroud)

这是我运行的命令:

rspec --backtrace spec/models/activity_report_spec.rb
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

No examples matched {:focus=>true}. Running all.

ActivityReport
  should create a new instance given valid attributes (FAILED - 1)

Failures:

  1) ActivityReport should create a new instance given valid attributes
     Failure/Error: Unable to find matching line from backtrace
     SystemStackError:
       stack level too deep
     # /Users/pbartels/.rvm/gems/ruby-1.9.2-p290@brothelking/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:206

Finished in 40.76 seconds
1 example, 1 failure

Failed examples: …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails backtrace rspec2 ruby-on-rails-3

0
推荐指数
1
解决办法
2392
查看次数

OCaml回溯链接

这是我的Makefile

CC = ocamlc
LIBES = str.cma
CFLAGS = -g -c
.PHONY : clean 
dpll:   
    -rm -f dpll
    $(CC) $(CFLAGS) dpll.ml 
    $(CC) -o dpll $(LIBES) dpll.cmo
    make clean
test:   
    ./dpll input.cnf
clean: 
    rm -f *.cmi *.cmo
Run Code Online (Sandbox Code Playgroud)

和我的OCaml文件是这样的(dpll部分).

let dpll_SAT  = 
  try 
    let cnf = read_cnf Sys.argv.(1) in
    let state = create_state [] cnf in
    let (result, ass) = dpll state in
    match result with 
|false -> print_string "the cnf clauses are not satisfiable\n"
|_-> print_string "The cnf clauses are satisfiable …
Run Code Online (Sandbox Code Playgroud)

ocaml makefile backtrace

0
推荐指数
1
解决办法
114
查看次数

dumpstack()和printStackTrace()之间的区别

我正在尝试获取从android Java应用程序代码调用的基础C代码的堆栈跟踪,并尝试使用 dumpStack()printStackTrace()失败。只是好奇两者之间是否有区别?

还有没有办法打印使用JNI在android端调用java函数的基础C代码的堆栈跟踪?

java debugging android stack-trace backtrace

0
推荐指数
1
解决办法
3440
查看次数

为什么 __builtin_return_address 在 Clang 中崩溃?

我有以下 C/C++ 代码,它使用__builtin_return_address

#include <stdio.h>

#ifdef __clang__
# define optnone __attribute__((optnone))
#else
# define optnone __attribute__((optimize("O0")))
#endif

void *f() {
    return __builtin_extract_return_addr(__builtin_return_address(2));
}

optnone void nest1() {
    printf("%p\n", f());
}

optnone void nest2() {
    nest1();
}

optnone void nest3() {
    nest2();
}

optnone void nest4() {
    nest3();
}

optnone int main() {
    nest4();
}
Run Code Online (Sandbox Code Playgroud)

GCC生成以下程序集并且工作正常(不会崩溃):

f:
        push    rbp
        mov     rbp, rsp
        mov     rax, QWORD PTR [rbp+0]
        pop     rbp
        mov     rax, QWORD PTR [rax]
        mov     rax, QWORD …
Run Code Online (Sandbox Code Playgroud)

c assembly callstack clang backtrace

0
推荐指数
1
解决办法
328
查看次数