Запитання з тегом «callstack»

Стек, який зберігає деталі функцій, викликаних програмою, послідовно, щоб кожна функція могла повернутися після завершення до коду, який її викликав.


29
Максимальний розмір стека викликів перевищив помилку
Я використовую файл бібліотеки JavaScript з прямим веб-видаленням (DWR) і отримую помилку лише в Safari (настільний ПК та iPad) Він говорить Максимальний розмір стека викликів перевищено. Що саме означає ця помилка і чи припиняє її обробку повністю? Також будь-яке виправлення для Safariвеб-переглядача (насправді на iPad Safari, йдеться JS: виконання перевищило …

6
Поясніть поняття рами стека в двох словах
Здається, я розумію стек виклику в дизайні мови програмування. Але я не можу знайти (мабуть, просто не шукаю досить важко) жодного гідного пояснення, що таке фрейм стека . Тому я хотів би попросити когось пояснити це мені кількома словами.
200 callstack 

2
Як я можу повторно скинути виняток у Javascript, але зберегти стек?
У Javascript, припустимо, я хочу виконати деяку очистку, коли трапляється виняток, але нехай виняток продовжує розповсюджувати стек, наприклад: try { enterAwesomeMode(); doRiskyStuff(); // might throw an exception } catch (e) { leaveAwesomeMode(); throw e; } doMoreStuff(); leaveAwesomeMode(); Проблема цього коду полягає в тому, що захоплення та повторне скидання винятку призводить …

13
друкувати стек виклику в C або C ++
Чи є спосіб скинути стек викликів у запущеному процесі на C або C ++ кожен раз, коли викликається певна функція? Я маю на увазі щось таке: void foo() { print_stack_trace(); // foo's body return } Де print_stack_traceпрацює аналогічно callerв Perl. Або щось подібне: int main (void) { // will print …
120 c++  c  linux  callstack 


7
Як саме працює стопка дзвінків?
Я намагаюся глибше зрозуміти, як працюють операції мов програмування низького рівня, і особливо, як вони взаємодіють з ОС / процесором. Я, мабуть, читав кожну відповідь у кожній нитці, що стосується стека / купи, тут на Stack Overflow. Але є ще одне, чого я ще не повністю зрозумів. Розглянемо цю функцію …


4
Чи вирівнюються змінні стеку за допомогою __attribute __ ((вирівняні (x)))?
у мене є такий код: #include <stdio.h> int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &a[0], &a[1], &a[2], &a[3]); } І я маю такий результат: 0x7fffbfcd2da0 0x7fffbfcd2da4 0x7fffbfcd2da8 0x7fffbfcd2dac Чому адреса a[0]не кратна 0x1000? Що саме __attribute__((aligned(x)))робить? Я неправильно зрозумів це пояснення? Я …


17
Як працює стек мовою асемблера?
На даний момент я намагаюся зрозуміти, як працює стек, тому я вирішив навчити себе деякій мові асемблера , я використовую цю книгу: http://savannah.nongnu.org/projects/pgubook/ Я використовую Gas і розробляю Linux Mint . Мене дещо бентежить: Наскільки мені було відомо, стек - це просто структура даних. Тож я припустив, що, якщо кодую …

10
Node.js - перевищено максимальний розмір стека викликів
Коли я запускаю свій код, Node.js видає "RangeError: Maximum call stack size exceeded"виняток, спричинений занадто великою кількістю рекурсивних викликів. Я намагався збільшити розмір стеку Node.js на sudo node --stack-size=16000 app, але Node.js аварійно завершує роботу без повідомлення про помилку. Коли я запускаю цей раз без Суду, то Node.js відбитків 'Segmentation …

1
Чому DOS встановлює реєстр SP на 0xFFFE після завантаження файлу .COM?
На сторінці вікіпедії про файли .COM https://en.wikipedia.org/wiki/COM_file воно гласить: Файли .COM в DOS встановлюють всі регістри сегментів x86 на однакове значення, а SP (покажчик стека) реєструють 0xFFFE, таким чином стек починається в самому верху сегмента пам'яті і працює звідти. Але це фактично встановлює стек починати одним словом внизу верхньої частини …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.