X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbacktrace.c;h=2f47809326ddc9d380e558feb5c5625d31ffdaf8;hb=987ae961590b56f1526a17d3bb15c38fd5e9caf9;hp=0999a081ecb351e9e0c530b43010cadc7c4dcf10;hpb=a14bc59fb8f27db193d74662dc9c5cb8237177ef;p=openvswitch diff --git a/lib/backtrace.c b/lib/backtrace.c index 0999a081..2f478093 100644 --- a/lib/backtrace.c +++ b/lib/backtrace.c @@ -42,7 +42,7 @@ get_max_stack(void) for (line_number = 1; fgets(line, sizeof line, f); line_number++) { if (strstr(line, "[stack]")) { uintptr_t end; - if (sscanf(line, "%*"SCNxPTR"-%"SCNxPTR, &end) != 1) { + if (sscanf(line, "%*x-%"SCNxPTR, &end) != 1) { VLOG_WARN("%s:%d: parse error", file_name, line_number); continue; } @@ -73,6 +73,10 @@ stack_low(void) uintptr_t low; asm("movl %%esp,%0" : "=g" (low)); return low; +#elif __x86_64__ + uintptr_t low; + asm("movq %%rsp,%0" : "=g" (low)); + return low; #else /* This causes a warning in GCC that cannot be disabled, so use it only on * non-x86. */