dbo:abstract
|
- Als Stacktrace („Stapel(speicher)zurückverfolgung“) oder in .NET Stackwalk bezeichnet man in der Informationstechnik die Ausgabe und Interpretation des Inhalts des Stacks. Ein Stacktrace wird meist zu Diagnosezwecken im Falle eines Programmabsturzes erstellt, denn damit kann die Aufrufkaskade, die zu dem Fehler führte, rekonstruiert werden. Auf dem Stack werden u. a. die Rücksprungadressen zu den Positionen im Programm hinterlegt, von denen aus eine Prozeduren aufgerufen wurde. Es entsteht so eine Liste von Prozeduradressen, deren Rückverfolgung es erlaubt, den Pfad von Prozeduraufrufen vom Start des Programms bis hin zum aktuellen Zustand zu erkennen. Im Fehlerfall kann sich dies als hilfreich erweisen, um die aufrufende Prozedur und verwendete Übergabeparameter ausfindig zu machen. Aus diesem Grund wird beispielsweise unter Linux nach einer Kernelpanik standardmäßig ein Stacktrace ausgegeben. (de)
- En informática, un stack trace (también llamado stack backtrace o stack traceback) es un informe de los elementos activos en la pila de ejecución en un momento determinado durante la ejecución de un programa. Cuando se ejecuta un programa, la memoria a menudo se asigna dinámicamente en dos sitios; la pila y el montón. La memoria se asigna continuamente en una pila pero no en un montón. También se denomina pila un elemento en la programación, por lo que para diferenciarla, esta pila se conoce como la pila en tiempo de ejecución del programa. Técnicamente, una vez que se ha asignado un bloque de memoria en la pila, no se lo puede quitar fácilmente, ya que puede haber otros bloques de memoria que se asignaron antes. Cada vez que se llama a una función en un programa, se asigna un bloque de memoria en la parte superior de la pila de tiempo de ejecución llamado registro de activación (o stack pointer). En un nivel alto, un registro de activación asigna memoria para los parámetros de la función y las variables locales declaradas en la función. Los programadores suelen utilizar el seguimiento de la pila durante el debugging interactivo y post-mortem. Los usuarios finales pueden ver un seguimiento de la pila que se muestra como parte de un mensaje de error, que luego el usuario puede informar a un programador. Un seguimiento de pila permite rastrear la secuencia de funciones anidadas llamadas, hasta el punto donde se genera el seguimiento de pila. En un escenario post-mortem, esto se extiende hasta la función donde ocurrió la falla (pero no fue necesariamente causada). Las llamadas de hermanos no aparecen en un seguimiento de pila. Como ejemplo, el siguiente programa de Python contiene un error. def a: i = 0 j = b(i) return jdef b(z): k = 5 if z == 0: c return k + zdef c: errora La ejecución del programa con el intérprete estándar de Python produce el siguiente mensaje de error. Traceback (most recent call last): File "tb.py", line 15, in a File "tb.py", line 3, in a j = b(i) File "tb.py", line 9, in b c File "tb.py", line 13, in c errorNameError: name 'error' is not defined El seguimiento de la pila muestra donde ocurre el error, es decir, en la función c. También muestra que la función c fue llamada por b, que fue llamada por a, que a su vez fue llamada por el código en la línea 15 (La última línea) del programa. Los registros de activación para cada una de estas tres funciones se organizarían en una pila de modo que la función a ocuparía la parte inferior de la pila y la función c ocuparía la parte superior de la pila. (es)
- En informatique, une trace d'appels (trace de pile, stack trace, stack backtrace ou encore stack traceback en anglais) est la représentation des piles d'exécution à un moment donné lors de l'exécution d'un programme informatique. Les développeurs utilisent couramment les traces d'appel lors de séances de débogage interactives ou post mortem. Les utilisateurs finaux peuvent parfois voir des traces d'appels affichées avec un message d'erreur, que l'utilisateur peut alors rapporter aux développeurs. Une trace d'appels remonte la séquence d'appels de fonctions - jusqu'au point où la trace d'appels est générée. Dans un scénario post-mortem, cela remonte jusqu'à la fonction où l'erreur a eu lieu (mais qui ne l'a pas nécessairement provoquée). Les appels de fonctions « frères » (exécutés et terminés avant la fonction courante) n'apparaissent pas dans une trace d'appels. Par exemple, le programme Python suivant contient une erreur : def a: bdef b: cdef c: erreura Exécuter ce programme avec l'interpréteur standard Python produit le message d'erreur suivant : Traceback (most recent call last): File "tb.py", line 10, in a File "tb.py", line 2, in a b File "tb.py", line 5, in b c File "tb.py", line 8, in c erreurNameError: global name 'erreur' is not defined La trace d'appels montre où l'erreur a eu lieu, c'est-à-dire dans la fonction c. Elle montre aussi que la fonction c a été appelée par b, qui a été appelée par a, qui a finalement été appelée par le code à la ligne 10 (la dernière ligne) du programme. (fr)
- In computing, a stack trace (also called stack backtrace or stack traceback) is a report of the active stack frames at a certain point in time during the execution of a program. When a program is run, memory is often dynamically allocated in two places; the stack and the heap. Memory is continuously allocated on a stack but not on a heap, thus reflective of their names. Stack also refers to a programming construct, thus to differentiate it, this stack is referred to as the program's function call stack. Technically, once a block of memory has been allocated on the stack, it cannot be easily removed as there can be other blocks of memory that were allocated before it. Each time a function is called in a program, a block of memory called an activation record is allocated on top of the call stack. Generally, the activation record stores the function's arguments and local variables. What exactly it contains and how it's laid out is determined by the calling convention. Programmers commonly use stack tracing during interactive and post-mortem debugging. End-users may see a stack trace displayed as part of an error message, which the user can then report to a programmer. A stack trace allows tracking the sequence of nested functions called - up to the point where the stack trace is generated. In a post-mortem scenario this extends up to the function where the failure occurred (but was not necessarily caused). Sibling calls do not appear in a stack trace. (en)
- In informatica, uno stack trace (traducibile letteralmente dall'inglese come "traccia dello stack"), chiamato anche stack backtrace o stack traceback, è un elenco degli stack frame attivi in un determinato momento durante l'esecuzione di un programma. Quando un programma viene eseguito, la memoria viene spesso allocata dinamicamente in due posizioni: lo stack e l'heap. Tecnicamente, una volta che un blocco di memoria è stato allocato nello stack, non può essere rimosso facilmente poiché possono esserci altri blocchi di memoria che sono stati allocati prima di esso. Ogni volta che una funzione viene chiamata in un programma, un blocco di memoria, chiamato record di attivazione (o puntatore allo stack), viene allocato in cima allo stack di runtime. Ad un alto livello, un record di attivazione alloca memoria per i parametri della funzione e le variabili locali dichiarate nella funzione. Uno stack trace consente di tracciare la sequenza di funzioni annidate invocate, fino al punto in cui viene generata la traccia dello stack. Questo è particolarmente utile quando la traccia viene generata a seguito di un errore. Per questo motivo, i programmatori usano comunemente lo stack tracing durante il debug. Talvolta anche l'utente finale può visualizzare uno stack trace come parte di un , che può in seguito segnalare al programmatore. (it)
- コンピュータにおいて、スタックトレース(英語: stack trace)とは、プログラムの実行中の特定の時点でのアクティブなスタックフレームのレポートである。スタックバックトレース(英語: stack backtrace)、スタックトレースバック(英語: stack traceback)とも言い、単にバックトレースとも言う(gdbでのレポートコマンドは、バックトレース(backtrace)を縮めたbtである)。 プログラムが実行されると、多くの場合、スタックとヒープの2つの場所にメモリが動的に割り当てられる。スタックという言葉はプログラムの構文についても使われるため、区別するために、このスタックはコールスタック(call stack)と呼ばれる。技術的には、メモリブロックがスタックに割り当てられると、その前に他のメモリブロックが割り当てられている可能性があるため、簡単に削除することはできない。プログラムで関数が呼び出されるたびに、スタックフレーム(またはアクティベーションレコード)と呼ばれるコールスタックの最上部にメモリブロックが割り当てられる。高レベルでは、スタックフレームは、関数内で宣言された関数のパラメータとローカル変数にメモリを割り当てる。 プログラマは通常、デバッグにおいてスタックトレースを使用する。エンドユーザには、エラーメッセージの一部としてスタックトレースが表示されることがあり、障害報告の際に使用する。 スタックトレースを使用すると、スタックトレースが生成されるまでの、呼び出されたのシーケンスを追跡できる。事後分析では、障害が発生した関数まで追跡できる(ただし必ずしも追跡できるわけではない)。末尾再帰はスタックトレースに表示されない。 次の、エラーが含まれたPythonプログラムで説明する。 def a: i = 0 j = b(i) return jdef b(z): k = 5 if z == 0: c return k/zdef c: error #存在しない関数を呼び出そうとしているa このプログラムを標準のPythonインタプリタで実行すると、次のエラーメッセージが生成される。 Traceback (most recent call last): File "tb.py", line 15, in a File "tb.py", line 3, in a j = b(i) File "tb.py", line 9, in b c File "tb.py", line 13, in c errorNameError: name 'error' is not defined スタックトレースは、エラーが発生した場所、つまり関数cを示している。また、関数cは関数bから、関数bは関数aから、関数aはプログラムの15行目(最終行)から呼び出されたことも示している。 これらの3つの関数のそれぞれのアクティベーションレコードは、関数aがスタックの下部を占有し、関数cがスタックの上部を占有するようにスタックに配置される。 (ja)
- 스택 추적 (stack trace, stack backtrace 또는 stack traceback)은 프로그램 실행 중 특정한 시점에서의 스택 프레임에 대한 리포트이다. 프로그램 실행 중 메모리는 보통 두 곳에 동적으로 할당되는데, 스택과 힙이 그것이다. 메모리는 이름에서 보이듯이 스택에서는 인접하여 할당되지만 힙은 그렇지 않다. 스택은 또한 프로그래밍 구조로도 여겨지며 프로그램의 으로 불린다. 기술적으로 메모리 블록이 스택에 할당되면, 이것은 그 이전에 할당된 블록같이 쉽게 제거되지 않는다. 프로그램에서 함수가 호출될 때마다 메모리 블록은 활성 레코드 (activation record)라고 불리는 런타임 스택의 위에 할당된다. 높은 수준에서는, 활성 레코드가 함수의 파라미터와 내부에 선언된 지역변수를 위해서 메모리를 할당한다. 프로그래머들은 보통 상호적인 사후 분석 디버깅에서 스택 추적을 사용한다. 최종 사용자들은 화면의 오류 메시지를 통해 스택 추적을 보게 되며 이것을 보고 프로그래머에게 리포트를 보낼 수 있다. 스택 추적은 호출된 의 순서를 스택 추적이 생성된 지점까지 추적할 수 있게 한다. 사후 분석 시나리오에서 이것은 실패가 발생한 함수까지 확장된다. 형재 함수 호출은 스택 추적에서 볼 수 없다. 예를 들면, 아래의 파이썬은 에러를 포함한다. def a: i = 0 j = b(i) return j def b(z): k = 5 if z == 0: c return k/z def c: error a 표준 파이썬 인터프리터 하에서 프로그램을 실행하면 아래의 에러 메시지가 생성된다. Traceback (most recent call last): File "tb.py", line 15, in <module> a File "tb.py", line 3, in a b File "tb.py", line 9, in b c File "tb.py", line 13, in c error NameError: global name 'error' is not defined 스택 추적은 어디서 에러가 발생했는지를 보여준다. 또한 c 함수가 b에 의해서 호출됐다는 것도 보여준다. 이 세 함수들을 위한 각각의 활성 레코드는 스택에 정렬된다. a 함수가 스택의 바닥을 차지하고, c 함수는 스택의 맨 위로 차지한다.| (ko)
- Stack trace (z ang. dosł. ślad stosu) – lista aktywnych ramek stosu w pewnym momencie działania aplikacji. Nazywana także zrzutem stosu. Programiści często używają listy ramek stosu podczas debugowania. Użytkownicy końcowi mogą czasami zobaczyć listę ramek stosu jako część informacji o błędzie, którą mogą przekazać programiście. Dzięki liście ramek stosu można śledzić ciąg zagnieżdżonych funkcji. Można także wskazywać miejsce, w którym został rzucony wyjątek. Może pokazywać listę nazw funkcji oraz numery linii prowadzące do miejsca, gdzie lista została wygenerowana, np. miejsca wyrzucenia wyjątku. Przykład wyświetlenia listy ramek stosu w języku JavaScript: function foo { bar; }function bar { baz; }function baz { quux; }try { foo;} catch(e) { console.log(e.stack); } W przeglądarce Google Chrome wewnątrz narzędzia developer tool wynikiem będzie lista ramek stosu: ReferenceError: quux is not defined at baz (http://localhost/stacktrace.html:6:18) at bar (http://localhost/stacktrace.html:5:18) at foo (http://localhost/stacktrace.html:4:18) at http://localhost/stacktrace.html:9:5 (pl)
- Трассировка стека (от англ. stack trace) — это отчёт о действующих кадрах стека в определённый момент времени во время выполнения программы. Когда программа запускается, память обычно динамически выделяется в двух местах; на стеке и в куче . Память постоянно выделяется на стеке, но не обязательно в куче. Каждый раз, когда функция вызывается в программе, блок памяти выделяется поверх исполняющегося кадра стека. На высоком уровне, кадр выделяется чтобы содержать параметры функции и локальные переменные, объявленные в ней. Программисты обычно используют трассировку стека во время интерактивной а также посмертной отладки. Конечные пользователи могут увидеть трассировку стека как часть сообщения об ошибке, о которой они могут затем сообщить программисту. Трассировка стека позволяет отслеживать последовательность вызванных функций - до точки, в которой трассировка стека была создана. В посмертном сценарии это распространяется на функцию, в которой произошел сбой (что не обязательно там же где он был создан). В качестве примера, следующая программа Python содержит ошибку. def a: i = 0 j = b(i) return jdef b(z): k = 5 if z == 0: c return k + zdef c: errora При запуске программы в стандартном интерпретаторе Python появляется следующее сообщение об ошибке. Traceback (most recent call last): File "tb.py", line 15, in a File "tb.py", line 3, in a j = b(i) File "tb.py", line 9, in b c File "tb.py", line 13, in c errorNameError: name 'error' is not defined Трассировка стека в показывает что ошибка возникла в функции c . Она также показывает, что функция c была вызвана функцией b, которая была вызвана функцией a, которая, в свою очередь, была вызван кодом на 15-ой строке (она же последняя строка) программы. Стековые кадры каждой из этих трёх функций были-бы расположены в стеке таким образом, чтобы функция a занимала нижнюю часть стека, а функция c - верхнюю. (ru)
- Траса стеку викликів (англ. stack trace або ж англ. stack backtrace) — це звіт про активні стекові кадри (активаційні записи) в певній точці програми під час її виконання. Найбільш часто застосовується при інтерактивному та післякраховому зневадженні. Траса стеку може виводитися користувачу програми як частина повідомлення про помилку, яку користувач може передати програмісту. Траса стеку дозволяє відслідкувати послідовність вкладених викликів функцій до точки де траса стеку гене��ується. При післякраховому сценарію до точки функції, де відбувся збій. Деякі виклики специфічних функцій у трасі стеку не відображаються (sibling function). (uk)
- 在计算机科学领域,栈追踪(英語:stack trace)是对程序运行过程中的某个时间点上活跃栈帧信息的描述。栈追踪也称堆疊回溯(英语:stack traceback 或 stack backtrace)。 程序员通常在交互式调试或者事发后调试中使用栈追踪。最终用户则可能在错误信息中看到栈追踪,并且可以选择将其反馈给程序员。 (zh)
|
rdfs:comment
|
- 在计算机科学领域,栈追踪(英語:stack trace)是对程序运行过程中的某个时间点上活跃栈帧信息的描述。栈追踪也称堆疊回溯(英语:stack traceback 或 stack backtrace)。 程序员通常在交互式调试或者事发后调试中使用栈追踪。最终用户则可能在错误信息中看到栈追踪,并且可以选择将其反馈给程序员。 (zh)
- Als Stacktrace („Stapel(speicher)zurückverfolgung“) oder in .NET Stackwalk bezeichnet man in der Informationstechnik die Ausgabe und Interpretation des Inhalts des Stacks. Ein Stacktrace wird meist zu Diagnosezwecken im Falle eines Programmabsturzes erstellt, denn damit kann die Aufrufkaskade, die zu dem Fehler führte, rekonstruiert werden. Aus diesem Grund wird beispielsweise unter Linux nach einer Kernelpanik standardmäßig ein Stacktrace ausgegeben. (de)
- En informática, un stack trace (también llamado stack backtrace o stack traceback) es un informe de los elementos activos en la pila de ejecución en un momento determinado durante la ejecución de un programa. Cuando se ejecuta un programa, la memoria a menudo se asigna dinámicamente en dos sitios; la pila y el montón. La memoria se asigna continuamente en una pila pero no en un montón. También se denomina pila un elemento en la programación, por lo que para diferenciarla, esta pila se conoce como la pila en tiempo de ejecución del programa. Técnicamente, una vez que se ha asignado un bloque de memoria en la pila, no se lo puede quitar fácilmente, ya que puede haber otros bloques de memoria que se asignaron antes. Cada vez que se llama a una función en un programa, se asigna un bloque de (es)
- In computing, a stack trace (also called stack backtrace or stack traceback) is a report of the active stack frames at a certain point in time during the execution of a program. When a program is run, memory is often dynamically allocated in two places; the stack and the heap. Memory is continuously allocated on a stack but not on a heap, thus reflective of their names. Stack also refers to a programming construct, thus to differentiate it, this stack is referred to as the program's function call stack. Technically, once a block of memory has been allocated on the stack, it cannot be easily removed as there can be other blocks of memory that were allocated before it. Each time a function is called in a program, a block of memory called an activation record is allocated on top of the call s (en)
- En informatique, une trace d'appels (trace de pile, stack trace, stack backtrace ou encore stack traceback en anglais) est la représentation des piles d'exécution à un moment donné lors de l'exécution d'un programme informatique. Les développeurs utilisent couramment les traces d'appel lors de séances de débogage interactives ou post mortem. Les utilisateurs finaux peuvent parfois voir des traces d'appels affichées avec un message d'erreur, que l'utilisateur peut alors rapporter aux développeurs. Par exemple, le programme Python suivant contient une erreur : (fr)
- In informatica, uno stack trace (traducibile letteralmente dall'inglese come "traccia dello stack"), chiamato anche stack backtrace o stack traceback, è un elenco degli stack frame attivi in un determinato momento durante l'esecuzione di un programma. Quando un programma viene eseguito, la memoria viene spesso allocata dinamicamente in due posizioni: lo stack e l'heap. Tecnicamente, una volta che un blocco di memoria è stato allocato nello stack, non può essere rimosso facilmente poiché possono esserci altri blocchi di memoria che sono stati allocati prima di esso. Ogni volta che una funzione viene chiamata in un programma, un blocco di memoria, chiamato record di attivazione (o puntatore allo stack), viene allocato in cima allo stack di runtime. Ad un alto livello, un record di attivazion (it)
- コンピュータにおいて、スタックトレース(英語: stack trace)とは、プログラムの実行中の特定の時点でのアクティブなスタックフレームのレポートである。スタックバックトレース(英語: stack backtrace)、スタックトレースバック(英語: stack traceback)とも言い、単にバックトレースとも言う(gdbでのレポートコマンドは、バックトレース(backtrace)を縮めたbtである)。 プログラムが実行されると、多くの場合、スタックとヒープの2つの場所にメモリが動的に割り当てられる。スタックという言葉はプログラムの構文についても使われるため、区別するために、このスタックはコールスタック(call stack)と呼ばれる。技術的には、メモリブロックがスタックに割り当てられると、その前に他のメモリブロックが割り当てられている可能性があるため、簡単に削除することはできない。プログラムで関数が呼び出されるたびに、スタックフレーム(またはアクティベーションレコード)と呼ばれるコールスタックの最上部にメモリブロックが割り当てられる。高レベルでは、スタックフレームは、関数内で宣言された関数のパラメータとローカル変数にメモリを割り当てる。 次の、エラーが含まれたPythonプログラムで説明する。 (ja)
- 스택 추적 (stack trace, stack backtrace 또는 stack traceback)은 프로그램 실행 중 특정한 시점에서의 스택 프레임에 대한 리포트이다. 프로그램 실행 중 메모리는 보통 두 곳에 동적으로 할당되는데, 스택과 힙이 그것이다. 메모리는 이름에서 보이듯이 스택에서는 인접하여 할당되지만 힙은 그렇지 않다. 스택은 또한 프로그래밍 구조로도 여겨지며 프로그램의 으로 불린다. 기술적으로 메모리 블록이 스택에 할당되면, 이것은 그 이전에 할당된 블록같이 쉽게 제거되지 않는다. 프로그램에서 함수가 호출될 때마다 메모리 블록은 활성 레코드 (activation record)라고 불리는 런타임 스택의 위에 할당된다. 높은 수준에서는, 활성 레코드가 함수의 파라미터와 내부에 선언된 지역변수를 위해서 메모리를 할당한다. 프로그래머들은 보통 상호적인 사후 분석 디버깅에서 스택 추적을 사용한다. 최종 사용자들은 화면의 오류 메시지를 통해 스택 추적을 보게 되며 이것을 보고 프로그래머에게 리포트를 보낼 수 있다. 예를 들면, 아래의 파이썬은 에러를 포함한다. 표준 파이썬 인터프리터 하에서 프로그램을 실행하면 아래의 에러 메시지가 생성된다. (ko)
- Stack trace (z ang. dosł. ślad stosu) – lista aktywnych ramek stosu w pewnym momencie działania aplikacji. Nazywana także zrzutem stosu. Programiści często używają listy ramek stosu podczas debugowania. Użytkownicy końcowi mogą czasami zobaczyć listę ramek stosu jako część informacji o błędzie, którą mogą przekazać programiście. Przykład wyświetlenia listy ramek stosu w języku JavaScript: function foo { bar; }function bar { baz; }function baz { quux; }try { foo;} catch(e) { console.log(e.stack); } (pl)
- Трассировка стека (от англ. stack trace) — это отчёт о действующих кадрах стека в определённый момент времени во время выполнения программы. Когда программа запускается, память обычно динамически выделяется в двух местах; на стеке и в куче . Память постоянно выделяется на стеке, но не обязательно в куче. Каждый раз, когда функция вызывается в программе, блок памяти выделяется поверх исполняющегося кадра стека. На высоком уровне, кадр выделяется чтобы содержать параметры функции и локальные переменные, объявленные в ней. В качестве примера, следующая программа Python содержит ошибку. (ru)
- Траса стеку викликів (англ. stack trace або ж англ. stack backtrace) — це звіт про активні стекові кадри (активаційні записи) в певній точці програми під час її виконання. Найбільш часто застосовується при інтерактивному та післякраховому зневадженні. Траса стеку може виводитися користувачу програми як частина повідомлення про помилку, яку користувач може передати програмісту. (uk)
|