class Thread::Backtrace
Eine interne Darstellung des Backtrace. Der Benutzer wird nie direkt mit Objekten dieser Klasse interagieren, aber Klassenmethoden können verwendet werden, um die Backtrace-Einstellungen der aktuellen Sitzung abzurufen.
Öffentliche Klassenmethoden
Source
static VALUE
backtrace_limit(VALUE self)
{
return LONG2NUM(rb_backtrace_length_limit);
}
Gibt die maximale Backtrace-Länge zurück, die durch die Befehlszeilenoption --backtrace-limit festgelegt wurde. Der Standardwert ist -1, was unbegrenzte Backtraces bedeutet. Wenn der Wert null oder positiv ist, werden die von Exception#full_message erzeugten Fehler-Backtraces abgekürzt und die zusätzlichen Zeilen durch ... 3 Ebenen... ersetzt.
$ ruby -r net/http -e "p Thread::Backtrace.limit; Net::HTTP.get(URI('http://wrong.address'))"
- 1
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': Failed to open TCP connection to wrong.address:80 (getaddrinfo: Name or service not known) (SocketError)
from .../lib/ruby/3.1.0/socket.rb:227:in `foreach'
from .../lib/ruby/3.1.0/socket.rb:632:in `tcp'
from .../lib/ruby/3.1.0/net/http.rb:998:in `connect'
from .../lib/ruby/3.1.0/net/http.rb:976:in `do_start'
from .../lib/ruby/3.1.0/net/http.rb:965:in `start'
from .../lib/ruby/3.1.0/net/http.rb:627:in `start'
from .../lib/ruby/3.1.0/net/http.rb:503:in `get_response'
from .../lib/ruby/3.1.0/net/http.rb:474:in `get'
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError)
from .../lib/ruby/3.1.0/socket.rb:227:in `foreach'
from .../lib/ruby/3.1.0/socket.rb:632:in `tcp'
from .../lib/ruby/3.1.0/net/http.rb:998:in `connect'
from .../lib/ruby/3.1.0/net/http.rb:976:in `do_start'
from .../lib/ruby/3.1.0/net/http.rb:965:in `start'
from .../lib/ruby/3.1.0/net/http.rb:627:in `start'
from .../lib/ruby/3.1.0/net/http.rb:503:in `get_response'
from .../lib/ruby/3.1.0/net/http.rb:474:in `get'
from -e:1:in `<main>'
$ ruby --backtrace-limit 2 -r net/http -e "p Thread::Backtrace.limit; Net::HTTP.get(URI('http://wrong.address'))"
2
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': Failed to open TCP connection to wrong.address:80 (getaddrinfo: Name or service not known) (SocketError)
from .../lib/ruby/3.1.0/socket.rb:227:in `foreach'
from .../lib/ruby/3.1.0/socket.rb:632:in `tcp'
... 7 levels...
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError)
from .../lib/ruby/3.1.0/socket.rb:227:in `foreach'
from .../lib/ruby/3.1.0/socket.rb:632:in `tcp'
... 7 levels...
$ ruby --backtrace-limit 0 -r net/http -e "p Thread::Backtrace.limit; Net::HTTP.get(URI('http://wrong.address'))"
0
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': Failed to open TCP connection to wrong.address:80 (getaddrinfo: Name or service not known) (SocketError)
... 9 levels...
.../lib/ruby/3.1.0/socket.rb:227:in `getaddrinfo': getaddrinfo: Name or service not known (SocketError)
... 9 levels...