标签: stack-trace

在 Django/Python 中,如何找出调用我的方法的方法?

我将我的方法的第一行是:

print "this method was called from "+filename_and_linenumber_of_code_that_called_it.
Run Code Online (Sandbox Code Playgroud)

是否可以抛出异常,立即捕获并在调用方法时打印堆栈跟踪?

python django stack-trace

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

Nlog没有记录stacktrace

我的NLog配置如下

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="file" xsi:type="File" fileName="${basedir}/log${shortdate}.txt" archiveAboveSize="500000" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="10" layout="${date:format=s}|${level}|${callsite}|${identity}|${message}|${exception:format=stacktrace}"/>
      <!--<target name="console" xsi:type="Console" />-->
    </targets>
    <rules>
      <logger name="*" minlevel="Debug" writeTo="file" />
      <!--<logger name="*" minlevel="Debug" writeTo="console" />-->
    </rules>
  </nlog>
Run Code Online (Sandbox Code Playgroud)

但是发生异常时不会记录堆栈跟踪.NLog中有错误吗?

我已经创建了一个围绕Nlog的包装器,我记录如下

public void Error(string message, Exception ex)
    {
        logger.Error(message, ex);
    }
Run Code Online (Sandbox Code Playgroud)

我在日志中收到消息,但没有收到堆栈跟踪.

提前致谢

c# logging nlog stack-trace

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

如何让我的 Maven Junit 测试打印出与 Eclipse JUnit 生成的相同的堆栈跟踪?

我正在使用 Maven 3.0.3、Spring 3.1.1.RELEASE 和 JUnit 4.8.1。我有一个像下面这样的测试......

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class SBTrainerDaoTest
{
Run Code Online (Sandbox Code Playgroud)

当我使用命令行(“mvn clean test”)在 Maven 中运行它时,应用程序上下文无法加载,我得到如下模糊错误(打印到控制台和 surefire 文件)......

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:848)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:790)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at …
Run Code Online (Sandbox Code Playgroud)

eclipse junit spring stack-trace maven

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

如何在java中获取调用层次结构

我有三个名为的课程FirstClass,SecondClass and ThirdClass.以下是三个类的来源:

FirstClass.java

public class FirstClass {
    public void firstMethod(){
        SecondClass secondClass = new SecondClass();
        secondClass.secondMethod();
    }
    public static void main(String[] args) {
        FirstClass firstClass = new FirstClass();
        firstClass.firstMethod();
    }

}
Run Code Online (Sandbox Code Playgroud)

SecondClass.java

public class SecondClass {
    public void secondMethod(){
        ThirdClass thirdClass = new ThirdClass();
        thirdClass.thirdMethod();
    }

}
Run Code Online (Sandbox Code Playgroud)

ThirdClass.java

public class ThirdClass {
    public void thirdMethod(){
        System.out.println("Here i need to print where the call comes from,(call hierarchy) Is it possible?");
    }
}
Run Code Online (Sandbox Code Playgroud)

在最后的方法(这里是ThirdClass.thirdMethod())我需要打印方法调用来自哪里(我的意思是调用层次结构).所以我需要写在thirdMethod()

java stack-trace call-hierarchy

3
推荐指数
2
解决办法
6192
查看次数

如何调试 C 共享库(用 Go 编写)——它挂在网络调用上

使用http.Post() 进行编码。如果我构建exe,就可以了。如果我构建 C 共享库-buildmode=c-shared,它会挂在 https.Post() 上。

我试过strace -fp PID

futex(0x7f618b2c1cd0, FUTEX_WAKE, 1)    = 0
futex(0xc820022110, FUTEX_WAIT, 0, NULL
Run Code Online (Sandbox Code Playgroud)

我试图添加分析器:

http.ListenAndServe("localhost:6060", nil)
http.Post()
Run Code Online (Sandbox Code Playgroud)

但是它再次挂在 http.Post 上,并且分析器也被阻止了(它正在侦听,但不是来自 6060 端口的响应)。我已经发送了 SIGQUIT 信号 - 堆栈跟踪:

SIGQUIT: quit
PC=0x7f0cad5c9081 m=1

goroutine 0 [idle]:
runtime.futex(0xc820022110, 0x0, 0x0, 0x0, 0x7f0c00000000, 0x7f0cad577879, 0x0, 0x0, 0x7f0cad577ae8, 0xc820022110, ...)
        /usr/local/go/src/runtime/sys_linux_amd64.s:288 +0x21
runtime.futexsleep(0xc820022110, 0xc800000000, 0xffffffffffffffff)
        /usr/local/go/src/runtime/os1_linux.go:39 +0x53
runtime.notesleep(0xc820022110)
        /usr/local/go/src/runtime/lock_futex.go:142 +0xa8
runtime.stoplockedm()
        /usr/local/go/src/runtime/proc1.go:1268 +0xb2
runtime.schedule()
        /usr/local/go/src/runtime/proc1.go:1590 +0x72
runtime.park_m(0xc820000600)
        /usr/local/go/src/runtime/proc1.go:1698 +0x191
runtime.mcall(0x7f0cad5c722a)
        /usr/local/go/src/runtime/asm_amd64.s:204 +0x53

goroutine 17 [IO …
Run Code Online (Sandbox Code Playgroud)

c shared-libraries stack-trace go

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

分析堆栈损坏的核心转储

我目前正在尝试调试我的 C++ 应用程序中的核心。客户报告了SEGFAULT具有以下线程列表的核心:

...Other threads go above here
  3 Thread 0xf73a2b70 (LWP 2120)  0x006fa430 in __kernel_vsyscall ()
  2 Thread 0x2291b70 (LWP 2212)  0x006fa430 in __kernel_vsyscall ()
* 1 Thread 0x218fb70 (LWP 2210)  0x00000000 in ?? ()
Run Code Online (Sandbox Code Playgroud)

令我困惑的是崩溃的线程指向0x00000000. 如果我尝试检查回溯,我会得到:

Thread 1 (Thread 0x1eeeb70 (LWP 27156)):
#0  0x00000000 in ?? ()
#1  0x00281da7 in SomeClass1::_someKnownMethod1 (this=..., elem=...) at path_to_cpp_file:line_number
#2  0x0028484d in SomeClass2::_someKnownMethod2 (this=..., stream=..., stanza=...) at path_to_cpp_file:line_number
#3  0x002958b2 in SomeClass3::_someKnownMethod3 (this=..., stream=..., elem=...) at path_to_cpp_file:line_number
Run Code Online (Sandbox Code Playgroud)

我对编辑表示歉意——这是保密协议的局限性。 …

c++ gdb core stack-trace segmentation-fault

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

从异常中获取实际的 StackTrace 对象

一个Exception对象有一个StackTrace属性。但它只是一个字符串。

有没有办法从 中获取实际System.Diagnostics.StackTrace对象Exception

我问是因为我从 an 获取 Exception 对象,但UnhandledExceptionEventHandler我无权访问生成异常的框架来获取实际的堆栈跟踪。

.net c# exception stack-trace

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

Django / uWSGI vassal的堆栈跟踪记录在哪里?

我正在将我的Django网站作为UWSGI皇帝的附庸。我创建/etc/uwsgi-emperor/vassals/mysite.ini如下:

[uwsgi]
socket = /var/opt/mysite/uwsgi.sock
chmod-socket = 775
chdir = /opt/mysite
master = true
virtualenv = /opt/mysite_virtualenv
env = DJANGO_SETTINGS_MODULE=mysite.settings
module = mysite.wsgi:application
uid = www-data
gid = www-data
processes = 1
threads = 1
plugins = python3,logfile
logger = file:/var/log/uwsgi/app/mysite.log
vacuum = true
Run Code Online (Sandbox Code Playgroud)

但是我得到的唯一日志是这样的:

[pid: 2887|app: 0|req: 7/7] 1.2.3.4 () {52 vars in 936 bytes} [Fri Oct 13 20:46:04 2017] POST /mysite/login/ => generated 27 bytes in 2453 msecs (HTTP/1.1 500) 4 headers in 126 bytes (2 …
Run Code Online (Sandbox Code Playgroud)

django logging stack-trace uwsgi python-3.x

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

boost::stacktrace 打印地址

我可以编译所有 boost:stacktrace 的例子。这是我的 bash 脚本:

#!/bin/bash

export CXX=~/x-tools/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-g++
export BOOST_INCLUDE=$HOME/x-libs/$($CXX -dumpmachine)/include
export BOOST_LIB=$HOME/x-libs/$($CXX -dumpmachine)/lib
export BOOST_SUFFIX="mt-d"
(ls $BOOST_LIB/*$BOOST_SUFFIX.a | tr "\n" "\0" | xargs -0 -n 1 basename | while read A; do B=-l$(echo $A | sed -e 's/^lib//' | sed -e 's/\.a//'); echo $B; done;) | tr "\n" " " > $BOOST_LIB/list_boost.txt
export BOOST_LIBS="cat $BOOST_LIB/list_boost.txt"
export EXECUTABLE_SUFFIX=""

$CXX -w -g3 -o assert_handler-$($CXX -dumpmachine)$EXECUTABLE_SUFFIX assert_handler.cpp -std=c++11 -static -I$BOOST_INCLUDE -L$BOOST_LIB $(eval $BOOST_LIBS) -ldl
$CXX -w -g3 -o debug_function-$($CXX -dumpmachine)$EXECUTABLE_SUFFIX debug_function.cpp -std=c++11 …
Run Code Online (Sandbox Code Playgroud)

c++ bash boost stack-trace

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

默认情况下如何隐藏 Node.js 中的内部堆栈跟踪错误?

我只想显示下面的 TypeError 行,但隐藏所有内部详细信息(以下 7 行均以 at 开头)。

 ~/Desktop/Practice> node "c:\Users\User\Practice\PracJS.js"
c:\Users\User\Practice\PracJS.js:6
let b = duck.prototype.isPrototypeOf(Bird)
                       ^
TypeError: Cannot read property 'isPrototypeOf' of undefined
    at Object.<anonymous> (c:\Users\User\Practice\PracJS.js:6:24)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)        
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)     
    at internal/main/run_main_module.js:17:11
Run Code Online (Sandbox Code Playgroud)

我知道我可以Error.stackTraceLimit = 0通过将它包含在文件中来做到这一点。但我想默认这样做。

有什么方法可以将 Node 指向一个配置文件(Error.stackTraceLimit = 0在里面设置),这样无论何时我运行node PracJS.js(在 VSCode 中),它都会自动应用Error.stackTraceLimit = 0

任何帮助表示赞赏!谢谢!

javascript stack-trace node.js

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