반응형
GDB로 주어진 함수 범위의 변수를 선언하는 방법은?
나는 gdb가 이미 선언된 변수를 사용하여 설정하는 것을 허용한다는 것을 알고 있습니다.set
지휘.
gdb가 주어진 함수의 범위 안에서 새로운 변수를 동적으로 선언하는 것이 가능합니까?
일부 공간을 동적으로 할당하여 새 변수를 저장하는 데 사용할 수 있습니다."현재 기능의 범위"가 의미하는 바에 따라 원하는 기능이 아닐 수도 있습니다.
그러나 출력 파라미터에 포인터를 가져오는 함수 func()가 있을 때의 모습은 다음과 같습니다.
set $foo = malloc(sizeof(struct funcOutStruct))
call func($foo)
p *$foo
call (void) free($foo)
C (그리고 아마도 C++) 코드의 경우, 이것은 매우 어려울 것입니다. 대부분의 구현에서 그렇게 하는 것은 스택 포인터를 이동하는 것을 수반하고, 이것은 더 이상 스택 프레임의 크기와 일치하지 않기 때문에 함수의 종료 코드를 실패하게 만들 것이기 때문입니다.또한 로컬 변수에 액세스하는 함수의 모든 코드는 갑자기 잘못된 위치에 부딪힐 위험이 있으며, 이 또한 좋지 않습니다.
그래서, 난 그렇게 생각하지 않아요, 아니에요.
전 그렇게 변수를 인쇄하고는 했어요
(gdb) set $path=((ngx_path_t **)ngx_cycle->paths.elts)[2]
(gdb) print *$path
$16 = {
name = {
len = 29,
data = 0x80ed15c "/usr/local/nginx/fastcgi_temp"
},
len = 5,
level = {1, 2, 0},
manager = 0,
loader = 0,
data = 0x0,
conf_file = 0x0,
line = 0
}
언급URL : https://stackoverflow.com/questions/10284103/how-to-declare-a-variable-in-the-scope-of-a-given-function-with-gdb
반응형
'programing' 카테고리의 다른 글
"inti = 1;왜 (i > = 60 * 60 * 1000 / 1 * 1000)"가 참입니까? (0) | 2023.09.23 |
---|---|
Oracle 10g Express 홈 페이지가 뜨지 않습니다. (0) | 2023.09.23 |
평균과 표준 편차가 주어진 정규 분포에서 확률을 계산하는 방법은 무엇입니까? (0) | 2023.09.23 |
워드프레스의 라우팅 문제 (0) | 2023.09.23 |
HSSF로 Excel에서 문자열 값을 읽는 중이지만 두 배입니다. (0) | 2023.09.23 |