Ho davvero trovato una risposta online, ma non ho potuto. C'è qualche differenza? Le persone dicono che un 'backtrace' viene generato su qualcosa che genera un'eccezione, mentre una traccia dello stack è un elenco di chiamate di metodo dal punto in cui l'applicazione è stata avviata al punto in cui è stata generata l'eccezione. Se si supponesse una traccia stack come una matrice, l'ultimo elemento sarebbe il metodo in cui è stata generata l'eccezione. Sarebbe il caso inverso di una traccia? In un linguaggio di programmazione come Ruby, per esempio, se si ha:Qual è la differenza tra uno stack-trace e un back-trace?
begin
raise 1
rescue
p $!.backtrace ; p caller(0) #=> displays the back-trace, then the stack-trace
end
Saranno uscita 2 campi diversi, che mi fa pensare che c'è qualcosa fondamentalmente diverso su di loro.
Linux esisteva a malapena quando Ruby è stato creato, dubito che tutti i termini in Ruby siano derivati da lì. Ruby è stato creato nel febbraio 1993, Linux nell'estate del 1991. SLS, la prima distribuzione di Linux aveva solo 5 mesi e buggy da morire, quando iniziò Ruby. –
@ JörgWMittag Speculazione da parte mia e probabilmente hai ragione, anche se ciò dipende da quando Exception.backtrace è stato aggiunto in primo luogo. È più probabile che fosse il termine popolare in quel momento poiché gli strumenti GNU tendono a usare quel termine (ad esempio GDB e lo strumento backtrace, che esisteva su Unix per primo). Come ho detto - qui per caso! Sono sorpreso che Ruby sia così vecchio in realtà. –
Concepito il 24 febbraio 1993, pubblicato nel 1995, 1.0 a Natale 1996. –