호출 스택에서 더 낮은 호출이 발생하는 버그를 찾으려면 스택의 "다운"상태일까요?"스택 다운"
Q
"스택 다운"
1
A
답변
2
위로 성장하는 스택의 경우 (플레이트라고 생각하면) 예. 현재 프레임보다 낮은 스택 프레임에서 뭔가가 '아래'라고합니다. (솔직하게 말해서, 사람들이 스택을 자주 내리는 것을 듣지 않습니다.)
편집 : 'lower'는 현재 프레임에 도달하기 위해 저장 한 스택 프레임을 의미합니다. 예를 들어 :
'피크'에서int main() {
a();
}
void a() {
b();
}
int b() {
return 0;
}
, main()
하단 프레임이 될 것이고, 그 위에 a()
과 상단에 다음 b()
될 것이다.
은 (버그를 '호출'에 대한 의견은 다소 혼란 스럽다.)
+0
+1 "예 상 성장 스택". 이것은 문제의 핵심 인 것 같습니다. 스택이 상향 또는 하향으로 성장하는 것을 상상하십니까? 저는 항상 책상 위에 종이를 쌓아 놓은 것과 같은 스택을 생각합니다. 그들은 항상 위로 자랍니다. (하지만 AFAIK 대부분의 OS는 콜 스택을 아래쪽으로 성장시켜 구현하므로 완벽하게 합법적으로 볼 수 있습니다.) –
1
수정. 스택의 "아래로"는 중첩 된 함수 호출을 의미합니다. A가 B와 B를 호출하면 C가 호출되고 C는 A에서 스택 아래로 이동하고 A는 C에서 스택의 위쪽으로 이동합니다.
또한 일반적으로 버그를 "호출하지"않습니다. 하나는 버그를 "만남"또는 "재생산"합니다.
왜 downvotes? 그것은 아주 냉혹 한 질문입니다. –
누군가는 그것을 멀리 오른쪽으로 생각할 수도 있습니다. –
이 사람은 계좌를 rep-inflating했습니다. "존"조심해 –