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»