Backtrace::Frame — 백트레이스의 한 프레임

Backtrace::Frame — 백트레이스의 한 프레임

백트레이스는 여러 프레임으로 이루어져 있고, 각 프레임은 소스 코드상의 한 위치를 가리켜요. Backtrace::Frame이 바로 그 "한 프레임"을 나타내는 타입이에요.

class Backtrace::Frame { }

본문

Backtrace::Frame은 백트레이스에서 하나의 프레임이에요. 소스 코드의 한 위치를 식별해요. Backtrace.new로 백트레이스를 만들면 그 안의 각 요소가 Backtrace::Frame이고, 첨자로 접근할 수 있어요.

메서드

method file

method file(Backtrace::Frame:D --> Str)

파일 이름을 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.file;

method line

method line(Backtrace::Frame:D --> Int)

줄 번호를 돌려줘요. 줄 번호는 1부터 세기 시작해요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.line;

method code

method code(Backtrace::Frame:D)

.file.line이 가리키는 코드 객체를, 가능하다면 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.code;

method subname

method subname(Backtrace::Frame:D --> Str)

이 프레임을 감싸는 서브루틴의 이름을 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.subname;

method is-hidden

method is-hidden(Backtrace::Frame:D: --> Bool:D)

프레임이 is hidden-from-backtrace 트레이트로 숨김 처리되었으면 True를 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.is-hidden;

method is-routine

method is-routine(Backtrace::Frame:D: --> Bool:D)

프레임이 단순한 Block이 아니라 루틴 속을 가리키면 True를 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.is-routine;

method is-setting

method is-setting(Backtrace::Frame:D: --> Bool:D)

프레임이 setting의 일부이면 True를 돌려줘요.

my $bt = Backtrace.new;
my $btf = $bt[0];
say $btf.is-setting; # OUTPUT: «True␤»

출처: Raku 공식 문서 — Backtrace::Frame