0
그래서 gdb로 디버깅해야하는 숙제에 대한 코드가 있습니다. 나는 문제를 발견하지만 문제의 해결책이 것을 알고gdb에서 값을 변경하는 방법
#define ARRAYSIZE 12
for (i = ARRAYSIZE - 2; i > 0; i--) {
for (j = i; j < ARRAYSIZE - 1; j++) {
을 변경하는 GDB를 사용하는 방법을 알고하지 않습니다
for (i = ARRAYSIZE; i > 0; i--) {
for (j = i-1; j < ARRAYSIZE - 1; j++) {
그러나 변경하는 방법을 모른다 for 루프의 매개 변수 나는이 방법을 시도했지만 작동하지 않습니다 :
81 for (i = ARRAYSIZE - 2; i > 0; i--) {
(gdb) set var i=12
(gdb) p i
$1 = 12
(gdb) n
82 for (j = i; j < ARRAYSIZE - 1; j++) {
(gdb) set var j=i-1
(gdb) p j
$2 = 9
(gdb) p i
$3 = 10
가 나는 또한 값을 변경 print i=12
및 print j=i-1
를 사용하여 시도했지만 결과는 동일합니다.
원본 파일 대신'gdb'에서 소스 코드를 변경하려는 이유는 무엇입니까? – merlin2011
@ merlin2011 숙제는 gdb로 코드를 디버깅하는 법을 배우는 것입니다. 그들은 우리가 gdb를 독점적으로 사용하고 실제 코드를 건드리지 않기를 원합니다. – user2923535
'gdb'는 * 버그 수정이 아닌 버그를 찾는 데 사용됩니다 ... – merlin2011