StackTraces

Base.StackTraces.StackFrameType
StackFrame

실행 컨텍스트를 나타내는 스택 정보로, 다음 필드를 포함합니다:

  • func::Symbol

    실행 컨텍스트를 포함하는 함수의 이름입니다.

  • linfo::Union{Core.MethodInstance, Method, Module, Core.CodeInfo, Nothing}

    실행 컨텍스트를 포함하는 MethodInstance 또는 CodeInfo(찾을 수 있는 경우) 또는 매크로 확장을 위한 모듈입니다.

  • file::Symbol

    실행 컨텍스트를 포함하는 파일의 경로입니다.

  • line::Int

    실행 컨텍스트를 포함하는 파일의 줄 번호입니다.

  • from_c::Bool

    코드가 C에서 온 경우 True입니다.

  • inlined::Bool

    코드가 인라인 프레임에서 온 경우 True입니다.

  • pointer::UInt64

    backtrace에 의해 반환된 실행 컨텍스트에 대한 포인터의 표현입니다.

source
Base.StackTraces.stacktraceFunction
stacktrace([trace::Vector{Ptr{Cvoid}},] [c_funcs::Bool=false]) -> StackTrace

스택 프레임의 벡터 형태로 스택 트레이스를 반환합니다. (기본적으로 stacktrace는 C 함수를 반환하지 않지만, 이를 활성화할 수 있습니다.) trace를 지정하지 않고 호출하면, stacktrace는 먼저 backtrace를 호출합니다.

source

Base.StackTraces의 다음 메서드와 유형은 내보내지 않으며, 예를 들어 StackTraces.lookup(ptr)와 같이 호출해야 합니다.

Base.StackTraces.lookupFunction
lookup(pointer::Ptr{Cvoid}) -> Vector{StackFrame}

실행 컨텍스트에 대한 포인터(일반적으로 backtrace 호출로 생성됨)를 주면 스택 프레임 컨텍스트 정보를 조회합니다. 해당 시점에서 인라인된 모든 함수에 대한 프레임 정보 배열을 반환하며, 가장 안쪽 함수가 먼저 나옵니다.

source
Base.StackTraces.remove_frames!Function
remove_frames!(stack::StackTrace, name::Symbol)

StackTrace(즉, StackFrames의 벡터)와 함수 이름(즉, Symbol)을 받아서, 함수 이름으로 지정된 StackFrameStackTrace에서 제거하고(지정된 함수 위의 모든 프레임도 제거함), 주로 반환하기 전에 StackTrace에서 함수의 StackTraces를 제거하는 데 사용됩니다.

source
remove_frames!(stack::StackTrace, m::Module)

제공된 Module에서 모든 StackFrame이 제거된 StackTrace를 반환합니다.

source