«callstack» 태그된 질문

프로그램이 호출 한 함수의 세부 사항을 순서대로 저장하는 스택으로, 각 함수가 완료시이를 호출 한 코드로 리턴 할 수 있습니다.


29
최대 호출 스택 크기가 오류를 초과했습니다
DWR (Direct Web Remoting) JavaScript 라이브러리 파일을 사용하고 있으며 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 } Perl print_stack_trace과 유사하게 작동하는 곳 caller. 또는 다음과 같이 : int main (void) { // will print out debug …
120 c++  c  linux  callstack 


7
콜 스택은 정확히 어떻게 작동합니까?
프로그래밍 언어의 저수준 작업이 어떻게 작동하는지, 특히 OS / CPU와 상호 작용하는 방법에 대해 더 깊이 이해하려고합니다. 나는 아마도 스택 오버플로의 모든 스택 / 힙 관련 스레드에서 모든 답변을 읽었으며 모두 훌륭합니다. 하지만 아직 완전히 이해하지 못한 것이 하나 있습니다. 유효한 Rust 코드 인 의사 코드에서이 함수를 고려하십시오 ;-) fn …


4
스택 변수가 GCC __attribute __ ((aligned (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)))? 이 설명을 오해 했습니까? gcc …


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가 오류 메시지없이 충돌합니다. sudo없이 이것을 다시 실행하면 Node.js는 'Segmentation fault: 11'. 재귀 호출을 제거하지 않고이 문제를 해결할 수 있습니까?

1
DOS가 .COM 파일을로드 한 후 SP 레지스터를 0xFFFE로 설정하는 이유는 무엇입니까?
.COM 파일 https://en.wikipedia.org/wiki/COM_file 에 대한 Wikpedia 페이지에서 다음을 읽습니다. DOS의 .COM 파일은 모든 x86 세그먼트 레지스터를 동일한 값으로 설정하고 SP (스택 포인터) 레지스터를 0xFFFE로 설정하므로 스택은 메모리 세그먼트의 맨 위에서 시작하여 거기서부터 내려옵니다. 그러나 이것은 실제로 스택을 세그먼트 상단의 한 단어 아래에서 시작하도록 설정합니다. 스택에서 값을 푸시하면 CPU가 SP를 0xFFFC로 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.