-
코어파일은 충돌할 당시 프로세스의 메모리 이미지를 덤프한 것이다.
코어 파일을 gdb와 함께 사용하여 프로그램의 상태를 조사하고 실패 원인을 규명할 수 있다.
어떤 예기치 않은 일이 발생하여 비정상적인 종료가 발생할 때 운영체제는 디스크에 코어 파일을 남긴다.
메모리에 관한 문제는 Checker 패키지를 사용하여 예방할 수 있으나, 메모리 fault를 일으키는 경우에는 충돌하면서 파일을 덤프한다.
코어 파일은 일반적으로 프로세스를 실행시킨 현재 작업 디렉토리에 생성되지만 프로그램 내에서 작업 디렉토리를 바꾸는 경우도 있다. -
보통 리눅스는 부팅 시 코어 파일을 만들지 않도록 세팅되어 있다. 코어 파일을 만들도록 설정하고자 한다면 셀의 내장 명령을 사용한다.
- 만약 C쉘 호환 쉘(tcsh)을 쓰고 있는 경우
$ limit core unlimited
- 만약 본 쉘류(sh, bash, zsh, pdksh)를 쓰고 있는 경우
$ ulimit –c unlimited
# 현재 설정값을 보고자 하는 경우
$ ulimit -a
- 코어 파일을 함께 사용하고자 하는 경우, 아래와 같이 한다.
$ gdb PROGRAM_NAME core
-
gdb는 이미 실행중인 프로그램 디버깅이 가능하다.
프로세스 실행을 가로채고 조사한 뒤 다시 원래 상태로 실행시킬 수 있다.
attach 명령을 사용하여 실행 중인 프로세서에 gdb를 붙인다.
attach 명령을 사용하기 위해서는 프로세스에 해당하는 실행 프로그램에 허가권을 가지고 있어야 한다. -
예를 들어 프로세스 ID 254번으로 실행 중인 pgmseq 프로그램이 있다면 다음과 같이 한다.
$ gdb pgmseq
$ attach 254
# 다음과 같이 해도 동일하게 동작한다.
$ gdb pgmseq 254
- 일단 gdb가 실행 중인 프로세스에 부착되면 프로그램을 일시 중지 시키고 gdb명령을 사용할 수 있도록 제어권을 가져온다.
break를 사용하여 중지점을 사용할 수 있고 중지점에 이를 때까지 실행하도록 continue 명령을 사용할 수 있다.
detach 명령을 사용하면 gdb를 실행 중인 프로세스로부터 떼어낼 수 있다.
필요에 따라 다른 프로세스에 대하여 attach 명령을 사용할 수 있다.
# run이라는 프로그램을 디버깅하고자 할 때,
# 1. gdb를 먼저 실행한 후에, file 명령을 사용하여 run을 부른다.
$ gdb
# 2. 가장 일반적인 방법
$ gdb run
# 3. 코어 파일을 사용할 때 동시에 인자로 준다.
$ gdb run core
# 4. 실행 중인 프로세스를 디버그하고자 한다면, 프로세스 ID를 두 번째 인자로 준다.
# 이 명령은 1234란 이름의 파일이 없다면 gdb를 프로세스 1234에 접속시킨다.
$ gdb run 1234
- 실행 절차
$ gcc -o run main.c
$ gdb run
# gdb를 실행 시키면 아래와 같은 안내 메세지가 출력된다.
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from run...(no debugging symbols found)...done.
명령여 | 설명 |
---|---|
list | 현재 위치에서 소스 파일의 내용을 10줄 보여준다. list 2, 15 : 소스 파일의2 ~ 15 까지를 보여준다. |
run | 프로그램을 시작한다.(break가 있다면 break까지 실행) run arg : 새로운 인수를 가지고 프로그램을 시작한다. arg는 “*”나 “[…]”를 포함할 수도 있다. 쉘의 사용까지도 확장될 수 있다. 또한 “<”, “>”, “>>” 같은 입출력 방향 재지정기호도 허용된다. |
break | 특정 라인이나 함수에 정지점을 설정한다. break function : 현재 파일 안의 함수 function에 정지점을 설정한다. break file:function : 파일 file안의 function에 정지점을 설정한다. watch : 감시점 설정(감시점은 어떤사건이 일어날 때에만 작동한다) until : until 명령을 쓰면, 반복문이 아닌 경우에는 next 명령과 똑같이 동작한다. 반복문일 경우, 현재 스택 프레임(즉, 현재 함수) 안에서, 현재 줄 다음 줄에 올 때까지 프로그램을 실행한다. |
clear | 특정 라인이나 함수에 있던 정지점을 삭제한다. |
delete | 몇몇 정지점이나 자동으로 출력되는 표현을 삭제한다. |
next | 다음 행을 수행한다. 서브루틴을 호출하면서 계속 수행한다. 호출이 발생하지 않으면 step와 같다. next n : 이를 n번 수행하라는 의미 |
step | 한 줄씩 실행 시킨다. 함수를 포함하고 있으면 함수 내부로 들어가서 한 줄씩 실행시킨다. |
print expr : 수식의 값을 보여준다. | |
display | 현재 display된 명령의 목록을 보여준다. |
bt | 프로그램 스택을 보여준다. (backtrace) |
kill | 디버깅 중인 프로그램의 실행을 취소한다. |
file | file program : 디버깅할 프로그램으로서 파일을 사용한다. |
cont | continue : 현재 위치에서 프로그램을 계속 실행한다. |
help | 명령에 관한 정보를 보여주거나 일반적인 정보를 보여준다. |
quit | gdb를 종료한다. |
- 예제 1
/* test.c */
#include <stdio.h>
int main()
{
int i;
double j;
/*
* 다음은 (i / 2) + i의 값을 출력하는 부분이다.
* i가 1이면 j는 1.5가 되어야 하지만 실제로는 그렇지 않다.
*/
for (i = 0; i < 5; ++i) {
j = (i / 2) + i;
printf("j is %lf\n", j);
}
return 0;
}
# -g 옵션을 꼭 넣어 컴파일할 것
$ gcc -g -o run test.c
$ ./run
j is 0.000000
j is 1.000000 # 이 부분이 원래 의도와 다르게 동작함, 디버깅 필요
j is 3.000000
j is 4.000000
j is 6.000000
$ gdb run
# gdb의 list 명령은 10줄씩 출력함
(gdb) list
1 #include <stdio.h>
2
3 int main()
4 {
5 int i;
6 double j;
7
8 /*
9 * 다음은 (i / 2) + i의 값을 출력하는 부분이다.
10 * i가 1이면 j는 1.5가 되어야 하지만 실제로는 그렇지 않다.
(gdb)
11 */
12 for (i = 0; i < 5; ++i) {
13 j = (i / 2) + i;
14 printf("j is %lf\n", j);
15 }
16
17 return 0;
18 }
(gdb)
Line number 19 out of range; test.c has 18 lines.
# break 12 : for 문에 이상이 있다고 판단하여 line 12에 breakpoint를 잡는다.
(gdb) b 12
# run : breakpoint까지 실행된다.
(gdb) r
Starting program: /root/run
Breakpoint 1, main () at test.c:12
12 for (i = 0; i < 5; ++i) {
# step : 한 줄 실행시킨다.
(gdb) s
13 j = (i / 2) + i;
(gdb) s
14 printf("j is %lf\n", j);
# print j : j의 값을 본다.
(gdb) p j
$1 = 0
# next: 한 줄 실행시킨다.
# next는 함수 호출시, 해당 함수를 한 줄로 처리하여 함수를 수행하고,
# step은 함수 호출시, 함수 루틴 안으로 들어간다.
(gdb) n
j is 0.000000
12 for (i = 0; i < 5; ++i) {
(gdb) display i
1: i = 0
(gdb) display j
2: j = 0
(gdb) n
13 j = (i / 2) + i;
1: i = 1
2: j = 0
(gdb) n
14 printf("j is %lf\n", j);
1: i = 1
2: j = 1
(gdb) n
j is 1.000000
12 for (i = 0; i < 5; ++i) {
1: i = 1
2: j = 1
# 어느 부분에서 초기 의도와 다르게 동작하는지 확인 했다면, quit 명령을 사용해 gdb 종료
(gdb) quit
A debugging session is active.
Inferior 1 [process 27589] will be killed.
Quit anyway? (y or n) y
- 예제 2
/* sum.c */
#include <stdio.h>
int sum(int x, int y);
int main(void)
{
int a, b, result;
printf("정수 a, b를 차례로 입력하세요.");
scanf("%d %d", &a, &b);
getchar(); // enter key
result = sum(a, b);
printf("\n%d + %d = %d\n", a, b, result);
return 0;
}
int sum(int x, int y)
{
return (x + y);
}
# 이 프로그램은 이상은 없고, 다만 스택을 보기 위한 것이다.
# 여러 곳에서 호출되는 함수 안에서 충돌이 일어날 경우를 생각해 보자.
# 이때는 함수가 어디로부터 호출되었는지, 그리고 어떤 상황에서 충돌이 일어났는지 파악하고자 할 것이다.
# backtrace(bt) 명령을 이용하면 충돌이 일어난 시점에서 프로그램의 현재 호출 스택(call stack) 상태를 볼 수 있다.
# 호출 스택은 현재 함수까지 이르는 호출 목록이다.
# 함수를 호출할 때마다 보관된 레지스터 값, 함수 전달 인수, 지역 변수 등의 자료를 스택에 push한다.
# 이렇게 해서 각 함수들은 스택상에 일정 공간을 차지한다.
# 특정함수에 대하여 스택에서 사용되고 있는 메모리 부분을 스택 프레임(frame)이라 부르며,
# 호출 스택은 이러한 스택 프레임을 순서대로 정렬한 목록이다.
$ gcc -g -o run sum.c
$ gdb run
(gdb) list
1 #include <stdio.h>
2
3 int sum(int x, int y);
4
5 int main(void)
6 {
7 int a, b, result;
8 printf("정수 a, b를 차례로 입력하세요.");
9 scanf("%d %d", &a, &b);
10 getchar(); // enter key
(gdb)
11 result = sum(a, b);
12 printf("\n%d + %d = %d\n", a, b, result);
13
14 return 0;
15 }
16
17 int sum(int x, int y)
18 {
19
20 return (x + y);
(gdb)
21 }
(gdb)
Line number 22 out of range; sum.c has 21 lines.
# breaking point를 소스코드 11번째 줄로 지정함
(gdb) b 11
Breakpoint 1 at 0x7b3: file sum.c, line 11.
# breaking point까지 소스코드 실행
(gdb) r
Starting program: /root/run
정수 a, b를 차례로 입력하세요.3 5
Breakpoint 1, main () at sum.c:11
11 result = sum(a, b);
# backtrace: 현재 스택에 main이 있음
(gdb) bt
#0 main () at sum.c:11
# 한 단계 실행, step이므로 함수로 분기
(gdb) s
sum (x=3, y=5) at sum.c:20
20 return (x + y);
# backtrace: 현재 스택에 sum이 있음
(gdb) bt
#0 sum (x=3, y=5) at sum.c:20
#1 0x00005555555547c2 in main () at sum.c:11
# 스택 프레임 0번으로 이동(sum())
(gdb) frame 0
#0 sum (x=3, y=5) at sum.c:20
20 return (x + y);
# 상위 스택 프레임(즉, 스택 프레임 0번을 호출한 곳)으로 이동
(gdb) up
#1 0x00005555555547c2 in main () at sum.c:11
11 result = sum(a, b);
# 하위 스택 프레임으로 이동
(gdb) down
#0 sum (x=3, y=5) at sum.c:20
20 return (x + y);
# 스택 프레임 1번으로 이동(main())
(gdb) frame 1
#1 0x00005555555547c2 in main () at sum.c:11
11 result = sum(a, b);
# 상위 스택 프레임으로 이동
# main() 함수는 초기 스택 프레임이기 때문에, 상위 스택으로 이동할 수가 없음
(gdb) up
Initial frame selected; you cannot go up.
# 현재 프레임 정보를 나타냄
(gdb) info frame
Stack level 1, frame at 0x7fffffffde90:
rip = 0x5555555547c2 in main (sum.c:11); saved rip = 0x7ffff7a05b97
caller of frame at 0x7fffffffde60
source language c.
Arglist at 0x7fffffffde80, args:
Locals at 0x7fffffffde80, Previous frame's sp is 0x7fffffffde90
Saved registers:
rbp at 0x7fffffffde80, rip at 0x7fffffffde88
# 하위 스택 프레임으로 이동(즉, 호출한 함수로 이동)
(gdb) down
#0 sum (x=3, y=5) at sum.c:20
20 return (x + y);
(gdb) info frame
Stack level 0, frame at 0x7fffffffde60:
rip = 0x555555554806 in sum (sum.c:20); saved rip = 0x5555555547c2
called by frame at 0x7fffffffde90
source language c.
Arglist at 0x7fffffffde50, args: x=3, y=5
Locals at 0x7fffffffde50, Previous frame's sp is 0x7fffffffde60
Saved registers:
rbp at 0x7fffffffde50, rip at 0x7fffffffde58
# finish: 해당 함수 종료
(gdb) fin
Run till exit from #0 sum (x=3, y=5) at sum.c:20
0x00005555555547c2 in main () at sum.c:11
11 result = sum(a, b);
Value returned is $1 = 8
# 현재 함수 내에서의 모든 변수의 이름과 값을 출력함
(gdb) info locals
a = 3
b = 5
result = 32767
(gdb) s
12 printf("\n%d + %d = %d\n", a, b, result);
(gdb) info locals
a = 3
b = 5
result = 8
# 해당 프로그램의 정보를 출력함
(gdb) info program
Using the running image of child process 30598.
Program stopped at 0x5555555547c5.
It stopped after being stepped.
Type "info stack" or "info registers" for more information.
# a 변수의 저장 위치를 나타냄
# a는 스택 프레임 시작지점으로부터 36 바이트 아래에 위치함
(gdb) info address a
Symbol "a" is a complex DWARF expression:
0: DW_OP_fbreg -36
.
# b는 스택 프레임 시작지점으로부터 32 바이트 아래에 위치함
(gdb) info address b
Symbol "b" is a complex DWARF expression:
0: DW_OP_fbreg -32
.
# c는 스택 프레임 시작지점으로부터 28 바이트 아래에 위치함
(gdb) info address result
Symbol "result" is a complex DWARF expression:
0: DW_OP_fbreg -28
.
(gdb) q
A debugging session is active.
Inferior 1 [process 30994] will be killed.
Quit anyway? (y or n) y
- 예제 3
/* seg.c */
#include <stdio.h>
#include <string.h>
int main()
{
char *bug = NULL;
strcpy(bug, "DEBUG");
printf("buf is %s\n", bug);
return 0;
}
$ gcc -g -o run seg.c
$ ./run
세그멘테이션 오류 (core dumped) # 해당 디렉토리에 core파일 생성됨
$ gdb run
(gdb) list
1 #include <stdio.h>
2 #include <string.h>
3
4 int main()
5 {
6 char *bug = NULL;
7
8 strcpy(bug, "DEBUG");
9 printf("buf is %s\n", bug);
10
(gdb) b 8
Breakpoint 1 at 0x65a: file seg.c, line 8.
(gdb) r
Starting program: /root/run
Breakpoint 1, main () at seg.c:8
8 strcpy(bug, "DEBUG");
# print bug를 해 보면 bug의 번지가 0x0으로 되어있음을 확인할 수 있음
# bug에 다른 번지수를 지정해야 함
(gdb) p bug
$1 = 0x0
(gdb) s
Program received signal SIGSEGV, Segmentation fault.
0x000055555555465e in main () at seg.c:8
8 strcpy(bug, "DEBUG");
(gdb) q
A debugging session is active.
Inferior 1 [process 30994] will be killed.
Quit anyway? (y or n) y
# core 파일을 활용하여 디버그하고자 할 경우
$ gdb run core
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from run...done.
# gdb는 signal SIGSEGV와 함께 코어 파일이 생성되었음을 알려줌
# 허가받지 않은 메모리 공간에 읽기, 쓰기를 시도했기 때문에 커널이 프로세스에게 signal SIGSEGV을 보냄
# 이 시그널로 인해 프로세스는 종료하면서 코어 파일을 덤프함
warning: exec file is newer than core file.
[New LWP 31112]
Core was generated by `./run'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000563895af165e in main () at seg.c:8
8 strcpy(bug, "DEBUG");
(gdb) q
A debugging session is active.
Inferior 1 [process 30994] will be killed.
Quit anyway? (y or n) y
-
Breakpoint
- 중지점을 조건적으로 설정할 수 있다. 즉 어떤 동작이 참일 때만 작동하도록 할 수 있다.
break 184 if (stace == 0)
- info break를 사용하면 모든 중지점과 감시점 목록을 보여 주고 그 상태도 보여 준다.
- disable을 사용하여 작동불능으로 할 수 있고, enable을 사용하여 가능하게 할 수도 있다.
-
인스트럭션 레벨 디버깅
- gdb를 통해 인스트럭션 레벨의 디버깅을 할 수 있으므로 프로그램의 매우 깊은 곳까지 디버깅할 수 있다.
# disass FUNCTION: FUNCTION 함수에 대한 디스어셈블리 # 위에서 사용했던 sum.c 파일 내에 정의된 sum 함수를 디스어셈블 해보면, (gdb) disass sum Dump of assembler code for function sum: 0x00000000000007fc <+0>: push %rbp 0x00000000000007fd <+1>: mov %rsp,%rbp 0x0000000000000800 <+4>: mov %edi,-0x4(%rbp) 0x0000000000000803 <+7>: mov %esi,-0x8(%rbp) 0x0000000000000806 <+10>: mov -0x4(%rbp),%edx 0x0000000000000809 <+13>: mov -0x8(%rbp),%eax 0x000000000000080c <+16>: add %edx,%eax 0x000000000000080e <+18>: pop %rbp 0x000000000000080f <+19>: retq End of assembler dump. # display/ i $pc: 현재의 인스트럭션을 보여줌 # $pc는 gdb내부 변수로서 현재 인스트럭션의 위치를 가리키는 프로그램 카운터(PC) # sum.c 파일을 사용하여 예를 들면, (gdb) list 1 #include <stdio.h> 2 3 int sum(int x, int y); 4 5 int main(void) 6 { 7 int a, b, result; 8 printf("정수 a, b를 차례로 입력하세요."); 9 scanf("%d %d", &a, &b); 10 getchar(); // enter key (gdb) 11 result = sum(a, b); 12 printf("\n%d + %d = %d\n", a, b, result); 13 14 return 0; 15 } 16 17 int sum(int x, int y) 18 { 19 20 return (x + y); (gdb) 21 } (gdb) b 11 Breakpoint 1 at 0x7b3: file sum.c, line 11. (gdb) display/i $pc 1: x/i $pc <error: No registers.> (gdb) r Starting program: /root/run 정수 a, b를 차례로 입력하세요.3 5 Breakpoint 1, main () at sum.c:11 11 result = sum(a, b); 1: x/i $pc => 0x5555555547b3 <main+73>: mov -0x10(%rbp),%edx (gdb) record (gdb) n 12 printf("\n%d + %d = %d\n", a, b, result); 1: x/i $pc => 0x5555555547c5 <main+91>: mov -0x10(%rbp),%edx (gdb) rn No more reverse-execution history. main () at sum.c:11 11 result = sum(a, b); 1: x/i $pc => 0x5555555547b3 <main+73>: mov -0x10(%rbp),%edx (gdb) s sum (x=3, y=5) at sum.c:20 20 return (x + y); 1: x/i $pc => 0x555555554806 <sum+10>: mov -0x4(%rbp),%edx (gdb) rs No more reverse-execution history. main () at sum.c:11 11 result = sum(a, b); 1: x/i $pc => 0x5555555547b3 <main+73>: mov -0x10(%rbp),%edx
- a. 'info variables' in GDB
All defined variables:
File ../csu/init-first.c:
int __libc_argc;
char **__libc_argv;
int __libc_multiple_libcs;
File ../elf/dl-sysdep.c:
int __GI___libc_enable_secure;
void *__GI___libc_stack_end;
int __libc_multiple_libcs;
void *_dl_random;
File ../login/utmp_file.c:
const struct utfuncs __libc_utmp_file_functions;
static int file_fd;
static off64_t file_offset;
static _Bool file_writable;
static struct utmp last_entry;
File ../misc/syslog.c:
static int LogFacility;
static int LogFile;
static int LogMask;
static int LogStat;
static const char *LogTag;
static int LogType;
static struct sockaddr_un SyslogAddr;
static int connected;
static __libc_lock_t syslog_lock;
File ../nss/getXXbyYY.c:
static char *buffer;
static __libc_lock_t lock;
File ../nss/getXXent.c:
static char *buffer;
static __libc_lock_t lock;
File ../nss/getXXent_r.c:
static service_user *last_nip;
static __libc_lock_t lock;
---Type <return> to continue, or q <return> to quit---
static service_user *nip;
static service_user *startp;
static int stayopen_tmp;
File ../signal/allocrtsig.c:
static int current_rtmax;
static int current_rtmin;
File ../stdlib/strtol_l.c:
const unsigned long __strtol_ul_max_tab[];
const unsigned char __strtol_ul_rem_tab[];
File ../sysdeps/gnu/errlist.c:
const char * const_sys_errlist_internal[135];
const int _sys_nerr_internal;
File ../sysdeps/gnu/siglist.c:
const char * const__new_sys_sigabbrev[65];
const char * const__new_sys_siglist[65];
File ../sysdeps/gnu/unwind-resume.c:
void (*__libgcc_s_resume)(struct _Unwind_Exception *);
static _Unwind_Reason_Code (*libgcc_s_personality)(int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *, struct _Unwind_Context *);
File ../sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c:
static const double one;
File ../sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c:
static const double huge;
static const double tiny;
static const double two54;
static const double twom54;
File ../sysdeps/ieee754/float128/../ldbl-128/s_frexpl.c:
static const _Float128 two114;
File ../sysdeps/ieee754/float128/../ldbl-128/s_modfl.c:
static const _Float128 one;
File ../sysdeps/ieee754/float128/../ldbl-128/s_scalbnl.c:
static const _Float128 huge;
static const _Float128 tiny;
---Type <return> to continue, or q <return> to quit---
static const _Float128 two114;
static const _Float128 twom114;
File ../sysdeps/ieee754/flt-32/s_frexpf.c:
static const float two25;
File ../sysdeps/ieee754/flt-32/s_modff.c:
static const float one;
File ../sysdeps/ieee754/flt-32/s_scalbnf.c:
static const float huge;
static const float tiny;
static const float two25;
static const float twom25;
File ../sysdeps/ieee754/ldbl-96/s_frexpl.c:
static const long double two65;
File ../sysdeps/ieee754/ldbl-96/s_modfl.c:
static const long double one;
File ../sysdeps/posix/gai_strerror.c:
static const struct {
int16_t code;
uint16_t idx;
} msgidx[17];
static const union msgstr_t msgstr;
File ../sysdeps/posix/getaddrinfo.c:
static const void *__elf_set___libc_subfreeres_element_fini__;
static const struct addrinfo default_hints;
static const struct prefixentry default_labels[8];
static const struct prefixentry default_precedence[5];
static const struct scopeentry default_scopes[3];
static struct timespec gaiconf_mtime;
static int gaiconf_reload_flag;
static int gaiconf_reload_flag_ever_set;
static const struct gaih_typeproto gaih_inet_typeproto[9];
static const struct prefixentry *labels;
static const struct gaih_servtuple nullserv;
static const struct prefixentry *precedence;
static const struct scopeentry *scopes;
---Type <return> to continue, or q <return> to quit---
File ../sysdeps/posix/profil.c:
static size_t nsamples;
static size_t pc_offset;
static u_int pc_scale;
static u_short *samples;
File ../sysdeps/posix/signal.c:
sigset_t _sigintr;
File ../sysdeps/posix/sprofil.c:
static struct region default_overflow_region;
static unsigned int overflow_counter;
static struct prof_info prof_info;
File ../sysdeps/posix/system.c:
static struct sigaction intr;
static __libc_lock_t lock;
static struct sigaction quit;
static int sa_refcntr;
File ../sysdeps/posix/tempname.c:
static const char letters[63];
File ../sysdeps/unix/bsd/getpt.c:
const char __libc_ptyname1[17];
const char __libc_ptyname2[17];
File ../sysdeps/unix/clock_gettime.c:
static hp_timing_t freq;
File ../sysdeps/unix/getlogin.c:
static char name[33];
File ../sysdeps/unix/sysv/linux/check_pf.c:
static const void *__elf_set___libc_subfreeres_element_freecache__;
static struct cached_data *cache;
static __libc_lock_t lock;
static struct cached_data noai6ai_cached;
File ../sysdeps/unix/sysv/linux/ptsname.c:
static char buffer[30];
---Type <return> to continue, or q <return> to quit---
File ../sysdeps/unix/sysv/linux/sigstack.c:
static const char __evoke_link_warning_sigstack[77];
File ../sysdeps/unix/sysv/linux/ttyname.c:
static char *getttyname_name;
static char *ttyname_buf;
File ../sysdeps/unix/sysv/linux/x86_64/brk.c:
void *__curbrk;
File ../sysdeps/unix/sysv/linux/x86_64/init-first.c:
long (*__vdso_clock_gettime)(clockid_t, struct timespec *);
long (*__vdso_getcpu)(unsigned int *, unsigned int *, void *);
File ../sysdeps/wordsize-64/../../io/ftw.c:
static const int ftw_arr[7];
static const int nftw_arr[7];
File ../sysdeps/x86/cacheinfo.c:
long __x86_data_cache_size;
long __x86_data_cache_size_half;
int __x86_prefetchw;
long __x86_raw_data_cache_size;
long __x86_raw_data_cache_size_half;
long __x86_raw_shared_cache_size;
long __x86_raw_shared_cache_size_half;
long __x86_shared_cache_size;
long __x86_shared_cache_size_half;
long __x86_shared_non_temporal_threshold;
static const struct intel_02_cache_info intel_02_known[68];
File ../sysdeps/x86_64/backtrace.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static void *libgcc_handle;
static _Unwind_Reason_Code (*unwind_backtrace)(_Unwind_Trace_Fn, void *);
static _Unwind_Word (*unwind_getcfa)(struct _Unwind_Context *);
static _Unwind_Ptr (*unwind_getip)(struct _Unwind_Context *);
File ../sysdeps/x86_64/multiarch/varshift.c:
const int8_t ___m128i_shift_right[31];
---Type <return> to continue, or q <return> to quit---
File /build/glibc-OTsEL5/glibc-2.27/build-tree/amd64-libc/dl-tunable-list.h:
static tunable_t tunable_list[22];
File /build/glibc-OTsEL5/glibc-2.27/build-tree/amd64-libc/intl/plural.c:
static const yytype_int8 yycheck[55];
static const yytype_uint8 yydefact[27];
static const yytype_int8 yydefgoto[3];
static const yytype_int8 yypact[27];
static const yytype_int8 yypgoto[3];
static const yytype_uint8 yyr1[14];
static const yytype_uint8 yyr2[14];
static const yytype_uint8 yystos[27];
static const yytype_uint8 yytable[55];
static const yytype_uint8 yytranslate[263];
File /build/glibc-OTsEL5/glibc-2.27/build-tree/amd64-libc/stdio-common/errlist-compat.c:
const int __sys_nerr_GLIBC_2_1;
const int __sys_nerr_GLIBC_2_3;
const int __sys_nerr_GLIBC_2_4;
static const char __evoke_link_warning_sys_errlist[68];
static const char __evoke_link_warning_sys_nerr[65];
File C-address.c:
const struct __locale_data _nl_C_LC_ADDRESS;
File C-collate.c:
const struct __locale_data _nl_C_LC_COLLATE;
static const char collseqmb[256];
static const uint32_t collseqwc[263];
File C-ctype.c:
const struct __locale_data _nl_C_LC_CTYPE;
const char _nl_C_LC_CTYPE_class[768];
const char _nl_C_LC_CTYPE_class32[1024];
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_alnum;
const struct {
---Type <return> to continue, or q <return> to quit---
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[2];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_alpha;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_blank;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_cntrl;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_digit;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_graph;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[2];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_lower;
const struct {
---Type <return> to continue, or q <return> to quit---
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_print;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_punct;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_space;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[2];
uint32_t level3[2];
} _nl_C_LC_CTYPE_class_upper;
const struct {
uint32_t isctype_data[8];
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[1];
uint32_t level3[4];
} _nl_C_LC_CTYPE_class_xdigit;
const struct {
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[4];
int32_t level3[32];
} _nl_C_LC_CTYPE_map_tolower;
const struct {
uint32_t header[5];
---Type <return> to continue, or q <return> to quit---
uint32_t level1[1];
uint32_t level2[4];
int32_t level3[32];
} _nl_C_LC_CTYPE_map_toupper;
const uint32_t _nl_C_LC_CTYPE_tolower[384];
const uint32_t _nl_C_LC_CTYPE_toupper[384];
const struct {
uint32_t header[5];
uint32_t level1[1];
uint32_t level2[8];
int8_t level3[33];
} _nl_C_LC_CTYPE_width;
File C-identification.c:
const struct __locale_data _nl_C_LC_IDENTIFICATION;
File C-measurement.c:
const struct __locale_data _nl_C_LC_MEASUREMENT;
File C-messages.c:
const struct __locale_data _nl_C_LC_MESSAGES;
File C-monetary.c:
const struct __locale_data _nl_C_LC_MONETARY;
static const uint32_t conversion_rate[2];
static const char not_available[2];
File C-name.c:
const struct __locale_data _nl_C_LC_NAME;
File C-numeric.c:
const struct __locale_data _nl_C_LC_NUMERIC;
File C-paper.c:
const struct __locale_data _nl_C_LC_PAPER;
File C-telephone.c:
const struct __locale_data _nl_C_LC_TELEPHONE;
File C-time.c:
const struct __locale_data _nl_C_LC_TIME;
---Type <return> to continue, or q <return> to quit---
File C-translit.h:
static const uint32_t translit_from_idx[1353];
static const wchar_t translit_from_tbl[2706];
static const uint32_t translit_to_idx[1353];
static const wchar_t translit_to_tbl[4797];
File C_name.c:
const char _nl_C_codeset[];
const char _nl_C_name[];
const char _nl_POSIX_name[];
File SYS_libc.c:
const char __GI__libc_intl_domainname[];
File a64l.c:
static const char a64l_table[77];
File abort.c:
struct abort_msg_s *__GI___abort_msg;
static __libc_lock_recursive_t lock;
static int stage;
File arena.c:
int __libc_malloc_initialized;
static const void *__elf_set___libc_thread_subfreeres_element_arena_thread_freeres__;
static char *aligned_heap_area;
static mstate free_list;
static __libc_lock_t free_list_lock;
static __libc_lock_t list_lock;
static size_t narenas;
static mstate thread_arena;
File argp-ba.c:
const char *argp_program_bug_address;
File argp-eexst.c:
error_t argp_err_exit_status;
File argp-help.c:
static const struct uparam_name uparam_names[9];
static struct uparams uparams;
---Type <return> to continue, or q <return> to quit---
File argp-parse.c:
static volatile int _argp_hang;
static const struct argp argp_default_argp;
static const struct argp_option argp_default_options[5];
static const struct argp argp_version_argp;
static const struct argp_option argp_version_options[2];
File argp-pv.c:
const char *argp_program_version;
File argp-pvh.c:
void (*argp_program_version_hook)(FILE * restrict, struct argp_state * restrict);
File asctime.c:
static const char format[32];
static char result[114];
File auth_des.c:
static const struct auth_ops authdes_ops;
File auth_none.c:
static struct authnone_private_s authnone_private;
static pthread_once_t authnone_private_guard;
static const struct auth_ops ops;
File auth_unix.c:
static const struct auth_ops auth_unix_ops;
File bindrsvprt.c:
static int blacklist_read;
static int *list;
static int list_size;
static __libc_lock_t lock;
File c16rtomb.c:
static mbstate_t state;
File categories.def:
static const enum value_type _nl_value_type_LC_ADDRESS[13];
static const enum value_type _nl_value_type_LC_COLLATE[19];
static const enum value_type _nl_value_type_LC_CTYPE[86];
static const enum value_type _nl_value_type_LC_IDENTIFICATION[16];
---Type <return> to continue, or q <return> to quit---
static const enum value_type _nl_value_type_LC_MEASUREMENT[2];
static const enum value_type _nl_value_type_LC_MESSAGES[5];
static const enum value_type _nl_value_type_LC_MONETARY[46];
static const enum value_type _nl_value_type_LC_NAME[7];
static const enum value_type _nl_value_type_LC_NUMERIC[6];
static const enum value_type _nl_value_type_LC_PAPER[3];
static const enum value_type _nl_value_type_LC_TELEPHONE[5];
static const enum value_type _nl_value_type_LC_TIME[159];
File cfsetspeed.c:
static const struct speed_struct speeds[32];
File clnt_perr.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static const struct auth_errtab auth_errlist[8];
static const char auth_errstr[198];
static const struct rpc_errtab rpc_errlist[18];
static const char rpc_errstr[451];
File clnt_raw.c:
static const struct clnt_ops client_ops;
File clnt_tcp.c:
static const struct clnt_ops tcp_ops;
File clnt_udp.c:
static const struct clnt_ops udp_ops;
File clnt_unix.c:
static const struct clnt_ops unix_ops;
File create_xid.c:
static struct drand48_data __rpc_lrand48_data;
static __libc_lock_t createxid_lock;
static pid_t is_initialized;
File ctype-info.c:
const __uint32_t *__ctype32_b;
const __uint32_t *__ctype32_tolower;
const __uint32_t *__ctype32_toupper;
const unsigned short *__ctype_b;
const __int32_t *__ctype_tolower;
---Type <return> to continue, or q <return> to quit---
const __int32_t *__ctype_toupper;
const uint16_t *__libc_tsd_CTYPE_B;
const int32_t *__libc_tsd_CTYPE_TOLOWER;
const int32_t *__libc_tsd_CTYPE_TOUPPER;
File cxa_at_quick_exit.c:
struct exit_function_list *__quick_exit_funcs;
static struct exit_function_list initial_quick;
File cxa_atexit.c:
struct exit_function_list *__exit_funcs;
__libc_lock_t __exit_funcs_lock;
uint64_t __new_exitfn_called;
static struct exit_function_list initial;
File cxa_thread_atexit_impl.c:
static void *dso_symbol_cache;
static struct link_map *lm_cache;
static struct dtor_list *tls_dtor_list;
File databases.def:
service_user *__nss_aliases_database;
service_user *__nss_ethers_database;
service_user *__nss_group_database;
service_user *__nss_gshadow_database;
service_user *__nss_hosts_database;
service_user *__nss_initgroups_database;
service_user *__nss_netgroup_database;
service_user *__nss_networks_database;
service_user *__nss_passwd_database;
service_user *__nss_protocols_database;
service_user *__nss_publickey_database;
service_user *__nss_rpc_database;
service_user *__nss_services_database;
service_user *__nss_shadow_database;
File dcigettext.c:
const char __GI__nl_default_dirname[];
const char *_nl_current_default_domain;
const char _nl_default_default_domain[];
struct binding *_nl_domain_bindings;
__libc_rwlock_t _nl_state_lock;
---Type <return> to continue, or q <return> to quit---
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static void *root;
static struct transmem_list *transmem_list;
static __libc_rwlock_t tree_lock;
File des_impl.c:
static const uint32_t des_SPtrans[8][64];
static const uint32_t des_skb[8][64];
static const char shifts2[16];
File des_soft.c:
static const char partab[128];
File dl-cache.c:
static struct cache_file *cache;
static struct cache_file_new *cache_new;
static size_t cachesize;
File dl-debug.c:
struct r_debug _r_debug;
File dl-error-skeleton.c:
static struct catch *catch_hook;
static receiver_fct receiver;
File dl-exception.c:
static const char _dl_out_of_memory[14];
File dl-libc.c:
struct dl_open_hook *__GI__dl_open_hook;
struct dl_open_hook *__GI__dl_open_hook2;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
File dl-load.c:
int __stack_prot;
static const struct r_strlenpair *capstr;
static struct r_search_path_struct env_path_list;
static size_t max_capstrlen;
static size_t max_dirnamelen;
static size_t ncapstr;
static struct r_search_path_struct rtld_search_dirs;
static const char system_dirs[66];
---Type <return> to continue, or q <return> to quit---
static const size_t system_dirs_len[4];
File dl-minimal.c:
const char __GI__itoa_lower_digits[];
static void *alloc_end;
static void *alloc_last_block;
static void *alloc_ptr;
File dl-profile.c:
static struct here_cg_arc_record *data;
static volatile uint32_t fromidx;
static uint32_t fromlimit;
static struct here_fromstruct *froms;
static unsigned int log_hashfraction;
static uintptr_t lowpc;
static uint32_t narcs;
static volatile uint32_t *narcsp;
static int running;
static size_t textsize;
static volatile uint16_t *tos;
File drand48-iter.c:
struct drand48_data __libc_drand48_data;
File dso_handle.c:
const void * const __dso_handle;
File efgcvt.c:
static char ecvt_buffer[20];
static char fcvt_buffer[20];
static char *fcvt_bufptr;
static char qecvt_buffer[33];
static char qfcvt_buffer[33];
static char *qfcvt_bufptr;
File environ.c:
char **__environ;
File errno.c:
int errno;
int rtld_errno;
---Type <return> to continue, or q <return> to quit---
File error.c:
unsigned int error_message_count;
int error_one_per_line;
void (*error_print_progname)(void);
File exit.c:
_Bool __exit_funcs_done;
File fgetgrent.c:
static char *buffer;
static __libc_lock_t lock;
File fgetpwent.c:
static char *buffer;
static __libc_lock_t lock;
File fgetsgent.c:
static char *buffer;
static __libc_lock_t lock;
File fgetspent.c:
static char *buffer;
static __libc_lock_t lock;
File fileops.c:
const struct _IO_jump_t _IO_file_jumps_maybe_mmap;
const struct _IO_jump_t _IO_file_jumps_mmap;
const struct _IO_jump_t __GI__IO_file_jumps;
File finddomain.c:
static struct loaded_l10nfile *_nl_loaded_domains;
File findlocale.c:
const char _nl_default_locale_path[];
struct loaded_l10nfile *_nl_locale_file_list[];
File fmtmsg.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static const struct severity_info errorsev;
static const struct severity_info haltsev;
static const struct severity_info infosev;
static const struct {
---Type <return> to continue, or q <return> to quit---
uint32_t len;
const char name[12];
} keywords[5];
static __libc_lock_t lock;
static const struct severity_info nosev;
static int print;
static struct severity_info *severity_list;
static const struct severity_info warningsev;
File fnmatch.c:
static int posixly_correct;
File forward.c:
struct pthread_functions __libc_pthread_functions;
int __libc_pthread_functions_init;
File fpioconst.c:
const mp_limb_t __tens[];
const struct mp_power _fpioconst_pow10[15];
File fpu_control.c:
fpu_control_t __fpu_control;
File fstab.c:
static const void *__elf_set___libc_subfreeres_element_fstab_free__;
static struct fstab_state fstab_state;
File gconv_builtin.c:
static const struct builtin_map map[12];
File gconv_cache.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static int cache_malloced;
static size_t cache_size;
static void *gconv_cache;
File gconv_conf.c:
size_t __gconv_max_path_elem_len;
struct path_elem *__gconv_path_elem;
const char *__gconv_path_envvar;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static const char builtin_aliases[999];
---Type <return> to continue, or q <return> to quit---
static struct gconv_module builtin_modules[12];
static const char default_gconv_path[32];
static const struct path_elem empty_path_elem;
static const char gconv_conf_filename[14];
static const char gconv_module_ext[4];
File gconv_db.c:
void *__gconv_alias_db;
__libc_lock_t __gconv_lock;
struct gconv_module *__gconv_modules_db;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static void *known_derivations;
static pthread_once_t once;
File gconv_dl.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static void *loaded;
static struct __gconv_loaded_object *release_handle;
File genops.c:
static const void *__elf_set___libc_atexit_element__IO_cleanup__;
static const void *__elf_set___libc_subfreeres_element_buffer_free__;
static _Bool dealloc_buffers;
static _IO_FILE *freeres_list;
static _IO_lock_t list_all_lock;
static _IO_FILE *run_fp;
static int stdio_needs_locking;
File getdate.c:
int getdate_err;
File getnameinfo.c:
static char *domain;
File getnetgrent.c:
static char *buffer;
File getnetgrent_r.c:
static struct __netgrent dataset;
static __libc_lock_t lock;
File getopt.c:
---Type <return> to continue, or q <return> to quit---
char *optarg;
int opterr;
int optind;
int optopt;
static struct _getopt_data getopt_data;
File getpw.c:
static const char __evoke_link_warning_getpw[58];
File gets_chk.c:
static const char __evoke_link_warning___gets_chk[57];
File getttyent.c:
static FILE *tf;
static char zapchar;
File getusershell.c:
static char **curshell;
static const char *okshells[3];
static char **shells;
static char *strings;
File getutent.c:
static struct utmp *buffer;
File getutent_r.c:
const struct utfuncs *__libc_utmp_jump_table;
__libc_lock_t __libc_utmp_lock;
const struct utfuncs __libc_utmp_unknown_functions;
File getutid.c:
static struct utmp *buffer;
File getutline.c:
static struct utmp *buffer;
File getwd_chk.c:
static const char __evoke_link_warning_getwd[58];
File global-locale.c:
locale_t __libc_tsd_LOCALE;
struct __locale_struct _nl_global_locale;
---Type <return> to continue, or q <return> to quit---
File gmon.c:
struct __bb *__bb_head;
struct gmonparam _gmonparam;
static int s_scale;
File herrno.c:
int __h_errno;
File herror.c:
const char * consth_errlist[5];
const int h_nerr;
File hooks.c:
static int disallow_malloc_check;
static int using_malloc_checking;
File hsearch.c:
static const void *__elf_set___libc_subfreeres_element___hdestroy__;
static struct hsearch_data htab;
File idn-stub.c:
static const void *__elf_set___libc_subfreeres_element_unload_libidn__;
static void *h;
static int (*to_ascii_lz)(const char *, char **, int);
static int (*to_unicode_lzlz)(const char *, char **, int);
File in6_addr.c:
const struct in6_addr __GI___in6addr_any;
const struct in6_addr __GI___in6addr_loopback;
File inet6_option.c:
static const char __evoke_link_warning_inet6_option_alloc[60];
static const char __evoke_link_warning_inet6_option_append[61];
static const char __evoke_link_warning_inet6_option_find[59];
static const char __evoke_link_warning_inet6_option_init[59];
static const char __evoke_link_warning_inet6_option_next[59];
static const char __evoke_link_warning_inet6_option_space[60];
File inet_ntoa.c:
static char buffer[18];
---Type <return> to continue, or q <return> to quit---
File init-misc.c:
char *__progname;
char *__progname_full;
File initgroups.c:
static _Bool use_initgroups_entry;
File interp.c:
const char __invoke_dynamic_linker__[28];
File iofopncook.c:
static const struct _IO_jump_t _IO_cookie_jumps;
File iofwide.c:
const struct _IO_codecvt __libio_codecvt;
File iogets.c:
static const char __evoke_link_warning_gets[57];
File iopadn.c:
static const char blanks[16];
static const char zeroes[16];
File iopopen.c:
static const struct _IO_jump_t _IO_proc_jumps;
static struct _IO_proc_file *proc_file_chain;
static _IO_lock_t proc_file_chain_lock;
File iowpadn.c:
static const wchar_t blanks[16];
static const wchar_t zeroes[16];
File itoa-digits.c:
const char __GI__itoa_lower_digits[];
File itoa-udigits.c:
const char __GI__itoa_upper_digits[];
File itowa-digits.c:
const wchar_t _itowa_lower_digits[36];
const wchar_t _itowa_upper_digits[36];
---Type <return> to continue, or q <return> to quit---
File key_call.c:
cryptkeyres *(*__key_decryptsession_pk_LOCAL)(uid_t, char *);
cryptkeyres *(*__key_encryptsession_pk_LOCAL)(uid_t, char *);
des_block *(*__key_gendes_LOCAL)(uid_t, char *);
static __libc_lock_t keycall_lock;
static const struct timeval tottimeout;
static const struct timeval trytimeout;
File l64a.c:
static const char conv_table[64];
File lckpwdf.c:
static __libc_lock_t lock;
static int lock_fd;
File libc_multiple_threads.c:
int __libc_multiple_threads;
File libc_pthread_init.c:
unsigned long *__fork_generation_pointer;
static const void *__elf_set___libc_subfreeres_element_freeres_libptread__;
File loadarchive.c:
static const char archfname[31];
static struct stat64 archive_stat;
static struct locale_in_archive *archloaded;
static struct archmapped *archmapped;
static struct archmapped headmap;
File loadlocale.c:
static const size_t _nl_category_num_items[13];
static const enum value_type * const_nl_value_types[13];
File loadmsgcat.c:
int _nl_msg_cat_cntr;
File localealias.c:
static __libc_lock_t lock;
static struct alias_map *map;
static size_t maxmap;
static size_t nmap;
static char *string_space;
---Type <return> to continue, or q <return> to quit---
static size_t string_space_act;
static size_t string_space_max;
File localtime.c:
struct tm _tmbuf;
File malloc.c:
void (*__after_morecore_hook)(void);
void (*__free_hook)(void *, const void *);
void *(*__malloc_hook)(size_t, const void *);
void (*__malloc_initialize_hook)(void);
void *(*__memalign_hook)(size_t, size_t, const void *);
void *(*__morecore)(ptrdiff_t);
void *(*__realloc_hook)(void *, size_t, const void *);
static mchunkptr dumped_main_arena_end;
static mchunkptr dumped_main_arena_start;
static size_t global_max_fast;
static struct malloc_state main_arena;
static struct malloc_par mp_;
static int perturb_byte;
static tcache_perthread_struct *tcache;
static _Bool tcache_shutting_down;
File mblen.c:
static mbstate_t state;
File mbrlen.c:
static mbstate_t internal;
File mbrtoc16.c:
static mbstate_t state;
File mbrtowc.c:
static mbstate_t state;
File mbsnrtowcs.c:
static mbstate_t state;
File mbsrtowcs.c:
static mbstate_t state;
File mcheck.c:
---Type <return> to continue, or q <return> to quit---
static void (*abortfunc)(enum mcheck_status);
static int mcheck_used;
static void (*old_free_hook)(void *, const void *);
static void *(*old_malloc_hook)(size_t, const void *);
static void *(*old_memalign_hook)(size_t, size_t, const void *);
static void *(*old_realloc_hook)(void *, size_t, const void *);
static int pedantic;
static struct hdr *root;
File memstream.c:
static const struct _IO_jump_t _IO_mem_jumps;
File mktemp.c:
static const char __evoke_link_warning_mktemp[68];
File mktime.c:
const unsigned short __mon_yday[2][13];
static time_t localtime_offset;
File mntent.c:
static char *getmntent_buffer;
File mtrace.c:
void *mallwatch;
static __libc_lock_t lock;
static const char mallenv[13];
static char *malloc_trace_buffer;
static FILE *mallstream;
static void (*tr_old_free_hook)(void *, const void *);
static void *(*tr_old_malloc_hook)(size_t, const void *);
static void *(*tr_old_memalign_hook)(size_t, size_t, const void *);
static void *(*tr_old_realloc_hook)(void *, size_t, const void *);
File netname.c:
static const char OPSYS[5];
File nscd_getgr_r.c:
struct locked_map_ptr __gr_map_handle;
int __nss_not_use_nscd_group;
static const void *__elf_set___libc_subfreeres_element_gr_map_free__;
File nscd_gethst_r.c:
---Type <return> to continue, or q <return> to quit---
struct locked_map_ptr __hst_map_handle;
int __nss_have_localdomain;
int __nss_not_use_nscd_hosts;
static const void *__elf_set___libc_subfreeres_element_hst_map_free__;
File nscd_getpw_r.c:
int __nss_not_use_nscd_passwd;
static const void *__elf_set___libc_subfreeres_element_pw_map_free__;
static struct locked_map_ptr map_handle;
File nscd_getserv_r.c:
int __nss_not_use_nscd_services;
struct locked_map_ptr __serv_map_handle;
static const void *__elf_set___libc_subfreeres_element_serv_map_free__;
File nscd_netgroup.c:
int __nss_not_use_nscd_netgroup;
static const void *__elf_set___libc_subfreeres_element_pw_map_free__;
static struct locked_map_ptr map_handle;
File nsswitch.c:
_Bool __nss_database_custom[14];
static const void *__elf_set___libc_subfreeres_element_free_defconfig__;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static const char * const __nss_shlib_revision;
static const struct {
const char name[10];
service_user **dbp;
} databases[14];
static name_database_entry *defconfig_entries;
static _Bool is_nscd;
static __libc_lock_t lock;
static void (*nscd_init_cb)(size_t, struct traced_file *);
static name_database *service_table;
File obprintf.c:
const struct _IO_jump_t _IO_obstack_jumps;
File obstack.c:
struct obstack *_obstack_compat;
void (*obstack_alloc_failed_handler)(void);
int obstack_exit_failure;
---Type <return> to continue, or q <return> to quit---
File plural-exp.c:
const struct expression __gettext_germanic_plural;
static const struct expression plone;
static const struct expression plvar;
File pmap_clnt.c:
static const struct timeval timeout;
static const struct timeval tottimeout;
File pmap_rmt.c:
static const struct timeval timeout;
File psiginfo-define.h:
static const uint8_t codes_11[2];
static const uint8_t codes_17[6];
static const uint8_t codes_29[6];
static const uint8_t codes_4[8];
static const uint8_t codes_5[2];
static const uint8_t codes_7[3];
static const uint8_t codes_8[8];
static const union codestrs_t_11 codestrs_11;
static const union codestrs_t_17 codestrs_17;
static const union codestrs_t_29 codestrs_29;
static const union codestrs_t_4 codestrs_4;
static const union codestrs_t_5 codestrs_5;
static const union codestrs_t_7 codestrs_7;
static const union codestrs_t_8 codestrs_8;
File random.c:
static __libc_lock_t lock;
static int32_t randtbl[32];
static struct random_data unsafe_state;
File random_r.c:
static const struct random_poly_info random_poly_info;
File rcmd.c:
int __check_rhosts_file;
char *__rcmd_errstr;
static char *ahostbuf;
---Type <return> to continue, or q <return> to quit---
File reg-modifier.c:
struct printf_modifier_record **__printf_modifier_table;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static __libc_lock_t lock;
static int next_bit;
File reg-printf.c:
printf_arginfo_size_function **__printf_arginfo_table;
printf_function **__printf_function_table;
static __libc_lock_t lock;
File reg-type.c:
printf_va_arg_function **__printf_va_arg_table;
static __libc_lock_t lock;
static int pa_next_type;
File regcomp.c:
const char __re_error_msgid[];
const size_t __re_error_msgid_idx[];
reg_syntax_t re_syntax_options;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static struct re_pattern_buffer re_comp_buf;
static const bitset_word_t utf8_sb_map[4];
File regex.c:
int re_max_failures;
static const char __evoke_link_warning_re_max_failures[61];
File regexp.c:
char *loc1;
char *loc2;
char *locs;
File register-atfork.c:
struct fork_handler *__fork_handlers;
int __fork_lock;
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static struct fork_handler_pool fork_handler_pool;
File res-close.c:
static const void *__elf_set___libc_subfreeres_element_res_thread_freeres__;
static const void *__elf_set___libc_thread_subfreeres_element_res_thread_freeres__;
---Type <return> to continue, or q <return> to quit---
File res_hconf.c:
struct hconf _res_hconf;
static const struct cmd cmd[4];
static struct netaddr *ifaddrs;
File res_libc.c:
struct __res_state *__resp;
struct __res_state _res;
File resolv_conf.c:
static const void *__elf_set___libc_subfreeres_element_freeres__;
static struct resolv_conf_global *global;
static __libc_lock_t lock;
File resolv_context.c:
static struct resolv_context *current;
File rexec.c:
int rexecoptions;
static char *ahostbuf;
File rpc_common.c:
struct opaque_auth __GI__null_auth;
struct rpc_createerr rpc_createerr;
fd_set svc_fdset;
int svc_max_pollfd;
struct pollfd *svc_pollfd;
File rpc_prot.c:
static const struct xdr_discrim reply_dscrm[3];
File rpc_thread.c:
static const void *__elf_set___libc_subfreeres_element___rpc_thread_destroy__;
static const void *__elf_set___libc_thread_subfreeres_element___rpc_thread_destroy__;
static struct rpc_thread_variables __libc_tsd_RPC_VARS_mem;
static struct rpc_thread_variables *thread_rpc_vars;
File rtld.c:
char **__GI__dl_argv;
uintptr_t __pointer_chk_guard_local;
int _dl_argc;
---Type <return> to continue, or q <return> to quit---
unsigned int _dl_skip_args;
struct rtld_global _rtld_global;
struct rtld_global_ro _rtld_global_ro;
const char *audit_list_string;
static struct libname_list _dl_rtld_libname;
static struct libname_list _dl_rtld_libname2;
static int any_debug;
static struct audit_list *audit_list;
static const char *library_path;
static hp_timing_t load_time;
static const char *preloadlist;
static hp_timing_t relocate_time;
static hp_timing_t start_time;
static _Bool tls_init_tp_called;
static int version_info;
File ruserpass.c:
static FILE *cfile;
static const char tokstr[53];
static const struct toktab toktab[7];
static char tokval[100];
File setenv.c:
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static __libc_lock_t envlock;
static void *known_values;
static char **last_environ;
File setlocale.c:
__libc_rwlock_t __libc_setlocale_lock;
const uint8_t _nl_category_name_idxs[13];
const uint8_t _nl_category_name_sizes[13];
const union catnamestr_t _nl_category_names;
static void (* const_nl_category_postload[13])(void);
File sgetsgent.c:
static __libc_lock_t lock;
File sgetspent.c:
static __libc_lock_t lock;
File sofini.c:
---Type <return> to continue, or q <return> to quit---
static const ui32 __FRAME_END__[1];
File stdfiles.c:
struct _IO_FILE_plus _IO_2_1_stderr_;
struct _IO_FILE_plus _IO_2_1_stdin_;
struct _IO_FILE_plus _IO_2_1_stdout_;
struct _IO_FILE_plus *__GI__IO_list_all;
static _IO_lock_t _IO_stdfile_0_lock;
static _IO_lock_t _IO_stdfile_1_lock;
static _IO_lock_t _IO_stdfile_2_lock;
static struct _IO_wide_data _IO_wide_data_0;
static struct _IO_wide_data _IO_wide_data_1;
static struct _IO_wide_data _IO_wide_data_2;
File stdio.c:
struct _IO_FILE *stderr;
struct _IO_FILE *stdin;
struct _IO_FILE *stdout;
File strerror.c:
static char *buf;
File strerror_l.c:
static const void *__elf_set___libc_subfreeres_element_strerror_thread_freeres__;
static const void *__elf_set___libc_thread_subfreeres_element_strerror_thread_freeres__;
static char *last_value;
File strops.c:
const struct _IO_jump_t _IO_str_jumps;
File strsignal.c:
static __libc_key_t key;
static char local_buf[100];
static char *static_buf;
File svc_auth.c:
static const struct {
enum auth_stat (*authenticator)(struct svc_req *, struct rpc_msg *);
} svcauthsw[4];
File svc_raw.c:
static const struct xp_ops server_ops;
---Type <return> to continue, or q <return> to quit---
File svc_tcp.c:
static const struct xp_ops svctcp_op;
static const struct xp_ops svctcp_rendezvous_op;
File svc_udp.c:
static const struct xp_ops svcudp_op;
File svc_unix.c:
static struct cmessage cm;
static const struct xp_ops svcunix_op;
static const struct xp_ops svcunix_rendezvous_op;
File svcauth_des.c:
struct {
u_long ncachehits;
u_long ncachereplays;
u_long ncachemisses;
} svcauthdes_stats;
File tempnam.c:
static const char __evoke_link_warning_tempnam[56];
File tens_in_limb.c:
const mp_limb_t _tens_in_limb[20];
File tmpnam.c:
static const char __evoke_link_warning_tmpnam[55];
static char tmpnam_buffer[20];
File tmpnam_r.c:
static const char __evoke_link_warning_tmpnam_r[57];
File tzfile.c:
int __use_tzfile;
static struct leap *leaps;
static size_t num_leaps;
static size_t num_transitions;
static size_t num_types;
static long rule_dstoff;
static long rule_stdoff;
static time_t *transitions;
---Type <return> to continue, or q <return> to quit---
static unsigned char *type_idxs;
static struct ttinfo *types;
static dev_t tzfile_dev;
static ino64_t tzfile_ino;
static time_t tzfile_mtime;
static char *tzspec;
static char *zone_names;
File tzset.c:
int __daylight;
long __timezone;
char *__tzname[2];
static const void *__elf_set___libc_subfreeres_element_free_mem__;
static char *old_tz;
static tz_rule tz_rules[2];
static __libc_lock_t tzset_lock;
static struct tzstring_l *tzstring_list;
File utmpname.c:
const char *__libc_utmp_file_name;
static const char default_file_name[14];
File valid_field.c:
const char __nss_invalid_field_characters[];
File valid_list_field.c:
static const char invalid_characters[4];
File version.c:
static const char __libc_release[7];
static const char __libc_version[5];
static const char banner[432];
File vfprintf.c:
static const struct _IO_jump_t _IO_helper_jumps;
static const uint8_t jump_table[91];
static const wchar_t null[7];
File vsnprintf.c:
const struct _IO_jump_t _IO_strn_jumps;
File vsprintf_chk.c:
---Type <return> to continue, or q <return> to quit---
static const struct _IO_jump_t _IO_str_chk_jumps;
File vswprintf.c:
const struct _IO_jump_t _IO_wstrn_jumps;
File vtables.c:
void (*IO_accept_foreign_vtables)(void);
File wcrtomb.c:
static mbstate_t state;
File wcsmbsload.c:
const struct gconv_fcts __wcsmbs_gconv_fcts_c;
static const struct __gconv_step to_mb;
static const struct __gconv_step to_wc;
File wcsnrtombs.c:
static mbstate_t state;
File wcsrtombs.c:
static mbstate_t state;
File wctomb.c:
mbstate_t __wctomb_state;
File wfileops.c:
const struct _IO_jump_t _IO_wfile_jumps_maybe_mmap;
const struct _IO_jump_t _IO_wfile_jumps_mmap;
const struct _IO_jump_t __GI__IO_wfile_jumps;
File wmemstream.c:
static const struct _IO_jump_t _IO_wmem_jumps;
File wstrops.c:
const struct _IO_jump_t _IO_wstr_jumps;
File xcrypt.c:
static const char hex[16];
File xdr.c:
static const char xdr_zero[4];
---Type <return> to continue, or q <return> to quit---
File xdr_mem.c:
static const struct xdr_ops xdrmem_ops;
File xdr_rec.c:
static const struct xdr_ops xdrrec_ops;
File xdr_stdio.c:
static const struct xdr_ops xdrstdio_ops;
File xlocale.c:
const struct __locale_struct _nl_C_locobj;
Non-debugging symbols:
0x0000555555554890 _IO_stdin_used
0x00005555555548d8 __GNU_EH_FRAME_HDR
0x0000555555554a44 __FRAME_END__
0x0000555555754da0 __frame_dummy_init_array_entry
0x0000555555754da0 __init_array_start
0x0000555555754da8 __do_global_dtors_aux_fini_array_entry
0x0000555555754da8 __init_array_end
0x0000555555754db0 _DYNAMIC
0x0000555555754fa0 _GLOBAL_OFFSET_TABLE_
0x0000555555755000 __data_start
0x0000555555755000 data_start
0x0000555555755008 __dso_handle
0x0000555555755010 __TMC_END__
0x0000555555755010 __bss_start
0x0000555555755010 _edata
0x0000555555755010 completed
0x0000555555755018 _end
0x00007ffff7dd5000 __ehdr_start
0x00007ffff7df4c00 debopts
0x00007ffff7df4e60 unsecure_envvars
0x00007ffff7df4fa0 audit_iface_names
0x00007ffff7df5020 expected2
0x00007ffff7df5200 msg
0x00007ffff7df5260 primes
0x00007ffff7df5530 expected_note
0x00007ffff7df5560 auxvars
0x00007ffff7df68f1 __PRETTY_FUNCTION__.10426
0x00007ffff7df7718 __PRETTY_FUNCTION__.10120
0x00007ffff7df7728 __PRETTY_FUNCTION__.10175
---Type <return> to continue, or q <return> to quit---
0x00007ffff7df7738 __PRETTY_FUNCTION__.10243
0x00007ffff7df7c80 __PRETTY_FUNCTION__.10270
0x00007ffff7df7c90 __PRETTY_FUNCTION__.10062
0x00007ffff7df7eb0 __PRETTY_FUNCTION__.10349
0x00007ffff7df7ec0 __PRETTY_FUNCTION__.10105
0x00007ffff7df8268 __PRETTY_FUNCTION__.10843
0x00007ffff7df8350 __PRETTY_FUNCTION__.8302
0x00007ffff7df84d8 __PRETTY_FUNCTION__.8447
0x00007ffff7df8770 __PRETTY_FUNCTION__.9256
0x00007ffff7df8780 expected2
0x00007ffff7df8790 expected1
0x00007ffff7df8900 __PRETTY_FUNCTION__.10733
0x00007ffff7df8910 __PRETTY_FUNCTION__.10798
0x00007ffff7df8cc8 __PRETTY_FUNCTION__.10437
0x00007ffff7df8cd8 __PRETTY_FUNCTION__.10369
0x00007ffff7df8d60 __PRETTY_FUNCTION__.7813
0x00007ffff7df8da0 __PRETTY_FUNCTION__.7010
0x00007ffff7df8db0 __PRETTY_FUNCTION__.10012
0x00007ffff7df8db0 __PRETTY_FUNCTION__.9699
0x00007ffff7df8db0 __PRETTY_FUNCTION__.9819
0x00007ffff7df8dd0 preload_file
0x00007ffff7df8df0 __PRETTY_FUNCTION__.9773
0x00007ffff7df8df0 __PRETTY_FUNCTION__.9970
0x00007ffff7df8e10 __PRETTY_FUNCTION__.10029
0x00007ffff7df8e30 __PRETTY_FUNCTION__.10123
0x00007ffff7df8e50 __PRETTY_FUNCTION__.9983
0x00007ffff7df8e70 __PRETTY_FUNCTION__.9970
0x00007ffff7df8e90 __PRETTY_FUNCTION__.10146
0x00007ffff7df8eb0 __PRETTY_FUNCTION__.10321
0x00007ffff7df8ed0 __PRETTY_FUNCTION__.9442
0x00007ffff7df8ef0 __PRETTY_FUNCTION__.9684
0x00007ffff7df8f10 __PRETTY_FUNCTION__.10922
0x00007ffff7df8f30 __PRETTY_FUNCTION__.9505
0x00007ffff7df8f50 __PRETTY_FUNCTION__.8469
0x00007ffff7df8f70 __PRETTY_FUNCTION__.9587
0x00007ffff7df8f90 __PRETTY_FUNCTION__.9545
0x00007ffff7df8fb0 __PRETTY_FUNCTION__.9524
0x00007ffff7df8fd0 __PRETTY_FUNCTION__.9464
0x00007ffff7df8ff0 __PRETTY_FUNCTION__.9414
0x00007ffff7df9010 __PRETTY_FUNCTION__.9390
0x00007ffff7df9030 expected4
0x00007ffff7df9050 expected3
---Type <return> to continue, or q <return> to quit---
0x00007ffff7df9060 __PRETTY_FUNCTION__.10713
0x00007ffff7df9080 __PRETTY_FUNCTION__.10663
0x00007ffff7df9090 __PRETTY_FUNCTION__.10690
0x00007ffff7df90b0 __PRETTY_FUNCTION__.9671
0x00007ffff7df90d0 expected_note
0x00007ffff7df90e0 expected
0x00007ffff7df90f0 dummy_bucket
0x00007ffff7df9100 errstring
0x00007ffff7df9140 _.stapsdt.base
0x00007ffff7df9144 __GNU_EH_FRAME_HDR
0x00007ffff7ffc6a0 dyn_temp
0x00007ffff7ffd000 _GLOBAL_OFFSET_TABLE_
0x00007ffff7ffdfd8 __bss_start
0x00007ffff7ffdfd8 _edata
0x00007ffff7ffdfe0 newname
0x00007ffff7ffe0a0 dl_close_state
0x00007ffff7b80cc7 inmask
0x00007ffff7b80da0 slashdot
0x00007ffff7b80dc0 codeset_idx
0x00007ffff7b8d9a0 mask
0x00007ffff7b8db60 nbits
0x00007ffff7b8dba0 nbits
0x00007ffff7b8dbe0 nbits.12176
0x00007ffff7b8dd40 nbits
0x00007ffff7b91760 step4_jumps
0x00007ffff7b917e0 step3b_jumps
0x00007ffff7b91860 step4_jumps
0x00007ffff7b918e0 step3a_jumps
0x00007ffff7b91960 step2_jumps
0x00007ffff7b919e0 step1_jumps
0x00007ffff7b91a60 step0_jumps
0x00007ffff7b91b40 units
0x00007ffff7b91b60 step4_jumps
0x00007ffff7b91be0 step3b_jumps
0x00007ffff7b91c60 step4_jumps
0x00007ffff7b91ce0 step3a_jumps
0x00007ffff7b91d60 step2_jumps
0x00007ffff7b91de0 step1_jumps
0x00007ffff7b91e60 step0_jumps
0x00007ffff7b93120 result_type
0x00007ffff7b93148 next_state
0x00007ffff7b93c00 nbits
---Type <return> to continue, or q <return> to quit---
0x00007ffff7b93c40 nbits.12304
0x00007ffff7b93c80 nbits
0x00007ffff7b93cc0 nbits
0x00007ffff7b93d38 __PRETTY_FUNCTION__.8518
0x00007ffff7b93d50 __PRETTY_FUNCTION__.8523
0x00007ffff7b95e40 afs
0x00007ffff7b95f20 CSWTCH.1
0x00007ffff7b960a0 options
0x00007ffff7b97820 __PRETTY_FUNCTION__.8460
0x00007ffff7b98fd8 __PRETTY_FUNCTION__.12480
0x00007ffff7b994a9 __PRETTY_FUNCTION__.9012
0x00007ffff7b997d8 dot
0x00007ffff7b9a93d longjmp_msg
0x00007ffff7b9b5a0 __PRETTY_FUNCTION__.8896
0x00007ffff7b9b8c0 __PRETTY_FUNCTION__.7444
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12038
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12043
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12149
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12214
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12219
0x00007ffff7b9bc10 __PRETTY_FUNCTION__.12325
0x00007ffff7b9bc48 __PRETTY_FUNCTION__.8056
0x00007ffff7b9bd70 __PRETTY_FUNCTION__.13997
0x00007ffff7b9bd80 __PRETTY_FUNCTION__.12383
0x00007ffff7b9bd90 __PRETTY_FUNCTION__.12447
0x00007ffff7b9bdc8 __PRETTY_FUNCTION__.9464
0x00007ffff7b9c2e0 __PRETTY_FUNCTION__.12639
0x00007ffff7b9cfe8 __PRETTY_FUNCTION__.12275
0x00007ffff7b9cff8 __PRETTY_FUNCTION__.12230
0x00007ffff7b9d008 __PRETTY_FUNCTION__.12200
0x00007ffff7b9d018 __PRETTY_FUNCTION__.11751
0x00007ffff7b9d028 __PRETTY_FUNCTION__.11783
0x00007ffff7b9d038 __PRETTY_FUNCTION__.12163
0x00007ffff7b9d048 __PRETTY_FUNCTION__.12449
0x00007ffff7b9d058 __PRETTY_FUNCTION__.12101
0x00007ffff7b9d068 __PRETTY_FUNCTION__.12090
0x00007ffff7b9d078 __PRETTY_FUNCTION__.11744
0x00007ffff7b9d088 __PRETTY_FUNCTION__.12406
0x00007ffff7b9d098 __PRETTY_FUNCTION__.12046
0x00007ffff7b9d0a8 __PRETTY_FUNCTION__.12127
0x00007ffff7b9d0b8 __PRETTY_FUNCTION__.12122
0x00007ffff7b9d0c8 __PRETTY_FUNCTION__.12343
---Type <return> to continue, or q <return> to quit---
0x00007ffff7b9d0d8 __PRETTY_FUNCTION__.12466
0x00007ffff7b9d2a0 __PRETTY_FUNCTION__.7764
0x00007ffff7b9d338 __PRETTY_FUNCTION__.7912
0x00007ffff7b9d3f8 __PRETTY_FUNCTION__.9603
0x00007ffff7b9d4a8 __PRETTY_FUNCTION__.9630
0x00007ffff7b9d4b8 __PRETTY_FUNCTION__.9626
0x00007ffff7b9d4f0 __PRETTY_FUNCTION__.9632
0x00007ffff7b9d500 __PRETTY_FUNCTION__.9633
0x00007ffff7b9d510 __PRETTY_FUNCTION__.9634
0x00007ffff7b9d590 __PRETTY_FUNCTION__.8466
0x00007ffff7b9d628 __PRETTY_FUNCTION__.8581
0x00007ffff7b9d668 __PRETTY_FUNCTION__.9632
0x00007ffff7b9d678 __PRETTY_FUNCTION__.9650
0x00007ffff7b9d720 __PRETTY_FUNCTION__.6261
0x00007ffff7b9d7b0 __PRETTY_FUNCTION__.9209
0x00007ffff7b9d7b0 __PRETTY_FUNCTION__.9214
0x00007ffff7b9d7e8 __PRETTY_FUNCTION__.8970
0x00007ffff7b9d7f8 __PRETTY_FUNCTION__.9248
0x00007ffff7b9d808 __PRETTY_FUNCTION__.9296
0x00007ffff7b9d880 __PRETTY_FUNCTION__.12405
0x00007ffff7b9d890 __PRETTY_FUNCTION__.12392
0x00007ffff7b9d8a0 __PRETTY_FUNCTION__.12590
0x00007ffff7b9d8b0 __PRETTY_FUNCTION__.12522
0x00007ffff7b9d8c0 __PRETTY_FUNCTION__.11459
0x00007ffff7b9d900 cs_path
0x00007ffff7b9db90 __PRETTY_FUNCTION__.14792
0x00007ffff7b9dba0 __PRETTY_FUNCTION__.15017
0x00007ffff7b9dbd0 __PRETTY_FUNCTION__.11371
0x00007ffff7b9dbe0 __PRETTY_FUNCTION__.11476
0x00007ffff7b9dbf0 __PRETTY_FUNCTION__.11771
0x00007ffff7b9dc00 __PRETTY_FUNCTION__.11388
0x00007ffff7b9dc10 __PRETTY_FUNCTION__.11380
0x00007ffff7b9dd60 __PRETTY_FUNCTION__.8035
0x00007ffff7b9dd98 __PRETTY_FUNCTION__.9028
0x00007ffff7b9ddd0 __PRETTY_FUNCTION__.9472
0x00007ffff7b9de58 __PRETTY_FUNCTION__.10629
0x00007ffff7b9e258 __PRETTY_FUNCTION__.8948
0x00007ffff7b9e2d0 __PRETTY_FUNCTION__.5596
0x00007ffff7b9e410 __PRETTY_FUNCTION__.12483
0x00007ffff7b9e420 __PRETTY_FUNCTION__.12305
0x00007ffff7b9e5f8 __PRETTY_FUNCTION__.11796
0x00007ffff7b9e6a0 __PRETTY_FUNCTION__.3795
---Type <return> to continue, or q <return> to quit---
0x00007ffff7b9e828 fmt
0x00007ffff7b9e930 __PRETTY_FUNCTION__.8686
0x00007ffff7b9e940 __PRETTY_FUNCTION__.8698
0x00007ffff7b9ea48 __PRETTY_FUNCTION__.9272
0x00007ffff7b9eb70 __func__.11060
0x00007ffff7b9ebe0 __func__.11003
0x00007ffff7b9ec80 __func__.13987
0x00007ffff7b9ece8 __func__.11069
0x00007ffff7b9ee48 __func__.7146
0x00007ffff7b9ee58 __func__.7324
0x00007ffff7b9ee68 __func__.7287
0x00007ffff7b9ee78 __func__.7290
0x00007ffff7b9eec0 __PRETTY_FUNCTION__.13392
0x00007ffff7b9eed0 __PRETTY_FUNCTION__.13267
0x00007ffff7b9eee0 __PRETTY_FUNCTION__.8849
0x00007ffff7b9eef0 __PRETTY_FUNCTION__.9707
0x00007ffff7b9ef00 __PRETTY_FUNCTION__.9735
0x00007ffff7b9ef10 __PRETTY_FUNCTION__.9754
0x00007ffff7b9ef90 __PRETTY_FUNCTION__.8516
0x00007ffff7b9efb0 __PRETTY_FUNCTION__.9065
0x00007ffff7b9efd0 __PRETTY_FUNCTION__.11705
0x00007ffff7b9eff0 __PRETTY_FUNCTION__.8436
0x00007ffff7b9f010 __PRETTY_FUNCTION__.10719
0x00007ffff7b9f030 __PRETTY_FUNCTION__.10597
0x00007ffff7b9f050 __PRETTY_FUNCTION__.10459
0x00007ffff7b9f070 __PRETTY_FUNCTION__.10306
0x00007ffff7b9f090 __PRETTY_FUNCTION__.10178
0x00007ffff7b9f0b0 __PRETTY_FUNCTION__.9966
0x00007ffff7b9f0d0 __PRETTY_FUNCTION__.9086
0x00007ffff7b9f0f0 __PRETTY_FUNCTION__.9078
0x00007ffff7b9f110 __PRETTY_FUNCTION__.9598
0x00007ffff7b9f130 __PRETTY_FUNCTION__.9054
0x00007ffff7b9f150 __PRETTY_FUNCTION__.9170
0x00007ffff7b9f170 __PRETTY_FUNCTION__.9130
0x00007ffff7b9f1b0 errstr
0x00007ffff7b9f1f0 __PRETTY_FUNCTION__.12093
0x00007ffff7b9f210 __PRETTY_FUNCTION__.12088
0x00007ffff7b9f230 __PRETTY_FUNCTION__.12088
0x00007ffff7b9f250 __PRETTY_FUNCTION__.12199
0x00007ffff7b9f270 __PRETTY_FUNCTION__.12590
0x00007ffff7b9f270 __PRETTY_FUNCTION__.12614
0x00007ffff7b9f290 __PRETTY_FUNCTION__.12357
---Type <return> to continue, or q <return> to quit---
0x00007ffff7b9f2b0 __PRETTY_FUNCTION__.12798
0x00007ffff7b9f2d0 __PRETTY_FUNCTION__.10524
0x00007ffff7b9f2d0 __PRETTY_FUNCTION__.11201
0x00007ffff7b9f2e0 __PRETTY_FUNCTION__.11151
0x00007ffff7b9f300 __PRETTY_FUNCTION__.10576
0x00007ffff7b9f320 __PRETTY_FUNCTION__.10541
0x00007ffff7b9f340 __PRETTY_FUNCTION__.12302
0x00007ffff7b9f360 __PRETTY_FUNCTION__.11794
0x00007ffff7b9f380 __PRETTY_FUNCTION__.11857
0x00007ffff7b9f3a0 __PRETTY_FUNCTION__.7957
0x00007ffff7b9f3c0 __PRETTY_FUNCTION__.9533
0x00007ffff7b9f3e0 __PRETTY_FUNCTION__.12258
0x00007ffff7b9f400 __PRETTY_FUNCTION__.12258
0x00007ffff7b9f420 __PRETTY_FUNCTION__.12263
0x00007ffff7b9f440 __PRETTY_FUNCTION__.12369
0x00007ffff7b9f460 __PRETTY_FUNCTION__.6298
0x00007ffff7b9f480 default_tzdir
0x00007ffff7b9f4a0 __PRETTY_FUNCTION__.8087
0x00007ffff7b9f4c0 __PRETTY_FUNCTION__.13034
0x00007ffff7b9f4e0 __PRETTY_FUNCTION__.11822
0x00007ffff7b9f500 __PRETTY_FUNCTION__.10573
0x00007ffff7b9f520 __PRETTY_FUNCTION__.10602
0x00007ffff7b9f540 __PRETTY_FUNCTION__.9019
0x00007ffff7b9f560 __PRETTY_FUNCTION__.9202
0x00007ffff7b9f580 __PRETTY_FUNCTION__.9445
0x00007ffff7b9f5a0 __PRETTY_FUNCTION__.10556
0x00007ffff7b9f5c0 __PRETTY_FUNCTION__.11676
0x00007ffff7b9f5e0 __PRETTY_FUNCTION__.9502
0x00007ffff7b9f600 __PRETTY_FUNCTION__.4135
0x00007ffff7b9f620 __PRETTY_FUNCTION__.4125
0x00007ffff7b9f640 __PRETTY_FUNCTION__.4116
0x00007ffff7b9f660 __PRETTY_FUNCTION__.13885
0x00007ffff7b9f680 __PRETTY_FUNCTION__.8722
0x00007ffff7b9f6a0 __PRETTY_FUNCTION__.9385
0x00007ffff7b9f6c0 __PRETTY_FUNCTION__.9415
0x00007ffff7b9f6e0 __PRETTY_FUNCTION__.9350
0x00007ffff7b9f700 __PRETTY_FUNCTION__.9295
0x00007ffff7b9f720 __PRETTY_FUNCTION__.9287
0x00007ffff7b9f740 __func__.14068
0x00007ffff7b9f750 __func__.10178
0x00007ffff7b9f760 __PRETTY_FUNCTION__.13198
0x00007ffff7b9f780 __PRETTY_FUNCTION__.9668
---Type <return> to continue, or q <return> to quit---
0x00007ffff7b9f790 __PRETTY_FUNCTION__.9714
0x00007ffff7b9f9c0 __PRETTY_FUNCTION__.10972
0x00007ffff7b9fa00 __PRETTY_FUNCTION__.11031
0x00007ffff7b9fa40 __PRETTY_FUNCTION__.10844
0x00007ffff7b9fa80 __PRETTY_FUNCTION__.10903
0x00007ffff7b9fac0 __PRETTY_FUNCTION__.10775
0x00007ffff7b9fae0 __PRETTY_FUNCTION__.10653
0x00007ffff7b9fb00 __PRETTY_FUNCTION__.10527
0x00007ffff7b9fb20 __PRETTY_FUNCTION__.10369
0x00007ffff7b9fb40 __PRETTY_FUNCTION__.10233
0x00007ffff7b9fb80 __PRETTY_FUNCTION__.10113
0x00007ffff7b9fbc0 __PRETTY_FUNCTION__.10023
0x00007ffff7b9fc00 __PRETTY_FUNCTION__.9931
0x00007ffff7b9fc40 __PRETTY_FUNCTION__.9848
0x00007ffff7b9fc60 __PRETTY_FUNCTION__.9757
0x00007ffff7b9fce0 bad_key_err
0x00007ffff7b9fd20 __PRETTY_FUNCTION__.12834
0x00007ffff7b9fe10 signmask
0x00007ffff7b9fe20 othermask
0x00007ffff7ba0200 max
0x00007ffff7ba0af8 _sys_nerr@@GLIBC_2.12
0x00007ffff7ba0af8 sys_nerr@@GLIBC_2.12
0x00007ffff7ba0afc _sys_nerr@GLIBC_2.2.5
0x00007ffff7ba0afc sys_nerr@GLIBC_2.2.5
0x00007ffff7ba0b00 _sys_nerr@GLIBC_2.3
0x00007ffff7ba0b00 sys_nerr@GLIBC_2.3
0x00007ffff7ba0b04 _sys_nerr@GLIBC_2.4
0x00007ffff7ba0b04 sys_nerr@GLIBC_2.4
0x00007ffff7ba1d48 _.stapsdt.base
0x00007ffff7ba1d6c __GNU_EH_FRAME_HDR
0x00007ffff7dcb740 __start___libc_thread_subfreeres
0x00007ffff7dcb760 __stop___libc_thread_subfreeres
0x00007ffff7dcd560 _sys_errlist@@GLIBC_2.12
0x00007ffff7dcd560 _sys_errlist@GLIBC_2.2.5
0x00007ffff7dcd560 _sys_errlist@GLIBC_2.3
0x00007ffff7dcd560 _sys_errlist@GLIBC_2.4
0x00007ffff7dcd560 sys_errlist@@GLIBC_2.12
0x00007ffff7dcd560 sys_errlist@GLIBC_2.2.5
0x00007ffff7dcd560 sys_errlist@GLIBC_2.3
0x00007ffff7dcd560 sys_errlist@GLIBC_2.4
0x00007ffff7dcd9a0 __old2_sys_siglist
0x00007ffff7dcd9a0 _old2_sys_siglist
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dcd9a0 _sys_siglist
0x00007ffff7dcd9a0 _sys_siglist@@GLIBC_2.3.3
0x00007ffff7dcd9a0 _sys_siglist@GLIBC_2.2.5
0x00007ffff7dcd9a0 sys_siglist@@GLIBC_2.3.3
0x00007ffff7dcd9a0 sys_siglist@GLIBC_2.2.5
0x00007ffff7dcdbc0 __old2_sys_sigabbrev
0x00007ffff7dcdbc0 sys_sigabbrev
0x00007ffff7dcdbc0 sys_sigabbrev@@GLIBC_2.3.3
0x00007ffff7dcdbc0 sys_sigabbrev@GLIBC_2.2.5
0x00007ffff7dcf000 _GLOBAL_OFFSET_TABLE_
0x00007ffff7dcf260 may_shrink_heap
0x00007ffff7dcf358 cached_result
0x00007ffff7dcf428 num_ifs
0x00007ffff7dcf42c startport
0x00007ffff7dcf434 tty_gid
0x00007ffff7dcf6e0 __ctype32_toupper@GLIBC_2.2.5
0x00007ffff7dcf6e8 __ctype32_tolower@GLIBC_2.2.5
0x00007ffff7dcf6f0 __ctype_toupper@GLIBC_2.2.5
0x00007ffff7dcf6f8 __ctype_tolower@GLIBC_2.2.5
0x00007ffff7dcf700 __ctype32_b@GLIBC_2.2.5
0x00007ffff7dcf708 __ctype_b@GLIBC_2.2.5
0x00007ffff7dd0858 DW.ref.__gcc_personality_v0
0x00007ffff7dd0860 __bss_start
0x00007ffff7dd0860 _edata
0x00007ffff7dd0a18 modcounter
0x00007ffff7dd0a1c lock
0x00007ffff7dd0b80 result
0x00007ffff7dd0c18 output_charset_cache
0x00007ffff7dd0c20 output_charset_cached
0x00007ffff7dd0c28 freemem_size
0x00007ffff7dd0c30 freemem
0x00007ffff7dd0c38 lock
0x00007ffff7dd0ca0 lock
0x00007ffff7dd0ce0 lock
0x00007ffff7dd0cf0 locale_alias_path
0x00007ffff7dd0d48 phys_pages
0x00007ffff7dd0d50 pagesize
0x00007ffff7dd15b8 state
0x00007ffff7dd1738 sysconf_symloop_max
0x00007ffff7dd1740 result
0x00007ffff7dd1760 nore
0x00007ffff7dd17a0 noexpr
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dd17c0 yesre
0x00007ffff7dd1800 yesexpr
0x00007ffff7dd1808 once
0x00007ffff7dd1818 name
0x00007ffff7dd1858 value
0x00007ffff7dd18f0 __malloc_initialize_hook@GLIBC_2.2.5
0x00007ffff7dd18f8 next_to_use
0x00007ffff7dd1900 narenas_limit
0x00007ffff7dd1980 added_atexit_handler
0x00007ffff7dd19b8 _obstack@GLIBC_2.2.5
0x00007ffff7dd19c0 already_called
0x00007ffff7dd19e0 once
0x00007ffff7dd1a68 olds
0x00007ffff7dd1a80 state
0x00007ffff7dd1aa0 rdata
0x00007ffff7dd1ad0 init
0x00007ffff7dd1bac is_initialized
0x00007ffff7dd1c90 gmtime_offset
0x00007ffff7dd1ca0 tmbuf
0x00007ffff7dd1ce0 resbuf
0x00007ffff7dd1d00 buffer_size
0x00007ffff7dd1d20 buffer_size
0x00007ffff7dd1d40 resbuf
0x00007ffff7dd1d80 resbuf
0x00007ffff7dd1da0 buffer_size
0x00007ffff7dd1dc0 resbuf
0x00007ffff7dd1de0 buffer_size
0x00007ffff7dd1e10 start_fct
0x00007ffff7dd1e18 startp
0x00007ffff7dd1e20 startp_initialized
0x00007ffff7dd1e28 start_fct.11672
0x00007ffff7dd1e30 startp.11671
0x00007ffff7dd1e38 startp_initialized.11670
0x00007ffff7dd1e40 resbuf
0x00007ffff7dd1e70 buffer_size
0x00007ffff7dd1e80 buffer_size
0x00007ffff7dd1ea0 resbuf
0x00007ffff7dd1ee0 resbuf
0x00007ffff7dd1f10 buffer_size
0x00007ffff7dd1f20 resbuf.9945
0x00007ffff7dd1f50 buffer_size.9944
0x00007ffff7dd1f80 start_fct
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dd1f88 startp
0x00007ffff7dd1f90 startp_initialized
0x00007ffff7dd1f98 start_fct.11679
0x00007ffff7dd1fa0 startp.11678
0x00007ffff7dd1fa8 startp_initialized.11677
0x00007ffff7dd2040 lock
0x00007ffff7dd2044 once
0x00007ffff7dd20a0 namelen
0x00007ffff7dd20a8 buflen
0x00007ffff7dd20b0 tiocgsid_does_not_work
0x00007ffff7dd2140 m
0x00007ffff7dd2168 once
0x00007ffff7dd2180 tty
0x00007ffff7dd21c0 line
0x00007ffff7dd2278 bufsize
0x00007ffff7dd2280 buf
0x00007ffff7dd2400 old_file_name
0x00007ffff7dd2408 old_line_number
0x00007ffff7dd2410 timestamp
0x00007ffff7dd2418 locs@GLIBC_2.2.5
0x00007ffff7dd2420 loc2@GLIBC_2.2.5
0x00007ffff7dd2428 loc1@GLIBC_2.2.5
0x00007ffff7dd2430 last_type
0x00007ffff7dd2434 last_family
0x00007ffff7dd2440 oact
0x00007ffff7dd24e0 otimer
0x00007ffff7dd2600 buffer_size
0x00007ffff7dd2620 resbuf
0x00007ffff7dd2680 resbuf
0x00007ffff7dd26c8 buffer_size
0x00007ffff7dd26e0 resbuf
0x00007ffff7dd2728 buffer_size
0x00007ffff7dd2730 buffer
0x00007ffff7dd2740 resbuf
0x00007ffff7dd2788 buffer_size
0x00007ffff7dd27b8 start_fct
0x00007ffff7dd27c0 startp
0x00007ffff7dd27c8 startp_initialized
0x00007ffff7dd27e0 buffer_size
0x00007ffff7dd2800 resbuf
0x00007ffff7dd2840 resbuf
0x00007ffff7dd2860 buffer_size
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dd2880 resbuf
0x00007ffff7dd28a0 buffer_size
0x00007ffff7dd28a8 buffer
0x00007ffff7dd28c0 resbuf
0x00007ffff7dd28e0 buffer_size
0x00007ffff7dd2910 start_fct
0x00007ffff7dd2918 startp
0x00007ffff7dd2920 startp_initialized
0x00007ffff7dd3268 result
0x00007ffff7dd3270 once
0x00007ffff7dd32a0 resbuf
0x00007ffff7dd32c0 buffer_size
0x00007ffff7dd32d0 start_fct
0x00007ffff7dd32d8 startp
0x00007ffff7dd32e0 startp_initialized
0x00007ffff7dd3300 resbuf
0x00007ffff7dd3320 buffer_size
0x00007ffff7dd3340 resbuf
0x00007ffff7dd3360 buffer_size
0x00007ffff7dd3370 start_fct
0x00007ffff7dd3378 startp
0x00007ffff7dd3380 startp_initialized
0x00007ffff7dd3388 start_fct
0x00007ffff7dd3390 startp
0x00007ffff7dd3398 startp_initialized
0x00007ffff7dd33a0 buffer_size
0x00007ffff7dd33c0 resbuf
0x00007ffff7dd3410 resbuf
0x00007ffff7dd3428 buffer_size
0x00007ffff7dd3438 start_fct
0x00007ffff7dd3440 startp
0x00007ffff7dd3448 startp_initialized
0x00007ffff7dd3450 resbuf
0x00007ffff7dd3468 buffer_size
0x00007ffff7dd3480 buffer_size.11081
0x00007ffff7dd3490 resbuf.11085
0x00007ffff7dd34d0 start_fct
0x00007ffff7dd34d8 startp
0x00007ffff7dd34e0 startp_initialized
0x00007ffff7dd34f0 resbuf
0x00007ffff7dd3508 buffer_size
0x00007ffff7dd3518 start_fct
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dd3520 startp
0x00007ffff7dd3528 startp_initialized
0x00007ffff7dd3530 buffer_size
0x00007ffff7dd3540 resbuf
0x00007ffff7dd3580 resbuf.11121
0x00007ffff7dd3598 buffer_size.11120
0x00007ffff7dd35a8 start_fct.11145
0x00007ffff7dd35b0 startp.11144
0x00007ffff7dd35b8 startp_initialized.11143
0x00007ffff7dd35c0 resbuf
0x00007ffff7dd35e0 buffer_size
0x00007ffff7dd35f0 start_fct
0x00007ffff7dd35f8 startp
0x00007ffff7dd3600 startp_initialized
0x00007ffff7dd3620 resbuf.11123
0x00007ffff7dd3640 buffer_size.11122
0x00007ffff7dd3650 start_fct.11681
0x00007ffff7dd3658 startp.11680
0x00007ffff7dd3660 startp_initialized.11679
0x00007ffff7dd3680 buffer_size.11080
0x00007ffff7dd36a0 resbuf.11084
0x00007ffff7dd36e8 result
0x00007ffff7dd36f0 start_fct
0x00007ffff7dd36f8 startp
0x00007ffff7dd3700 asc
0x00007ffff7dd3718 start_fct.9898
0x00007ffff7dd3720 startp.9897
0x00007ffff7dd37c0 startp
0x00007ffff7dd37c8 startp_initialized
0x00007ffff7dd383c once
0x00007ffff7dd3860 buffer_size
0x00007ffff7dd3880 resbuf
0x00007ffff7dd38c0 resbuf
0x00007ffff7dd38e0 buffer_size
0x00007ffff7dd38f0 start_fct
0x00007ffff7dd38f8 startp
0x00007ffff7dd3900 startp_initialized
0x00007ffff7dd3904 lock
0x00007ffff7dd3908 not_first
0x00007ffff7dd3920 tmpbuf
0x00007ffff7dd3ba0 lock
0x00007ffff7dd3ba4 once
---Type <return> to continue, or q <return> to quit---
0x00007ffff7dd3bc0 _res@GLIBC_2.2.5
0x00007ffff7dd3e80 default_table
0x00007ffff7dd3f40 port
0x00007ffff7dd3f5c size
0x00007ffff7dd3f78 start_fct
0x00007ffff7dd3f80 startp
0x00007ffff7dd3f88 start_fct
0x00007ffff7dd3f90 startp
0x00007ffff7dd3fa0 buffer_size
0x00007ffff7dd3fb0 resbuf
0x00007ffff7dd3fd0 resbuf
0x00007ffff7dd3fe8 buffer_size
0x00007ffff7dd4000 resbuf.9861
0x00007ffff7dd4018 buffer_size.9860
0x00007ffff7dd4048 start_fct
0x00007ffff7dd4050 startp
0x00007ffff7dd4058 startp_initialized
0x00007ffff7dd4060 start_fct.9885
0x00007ffff7dd4068 startp.9884
0x00007ffff7dd4070 startp_initialized.9883
0x00007ffff7dd4080 cm
0x00007ffff7dd40f8 start_fct
0x00007ffff7dd4100 startp
0x00007ffff7dd4120 once
0x00007ffff7dd4248 crud
0x00007ffff7dd4270 lock
0x00007ffff7dd446c devpts_mounted
0x00007ffff7dd4470 have_no_dev_ptmx
0x00007ffff7dd4ae0 _end
0x00007ffff7dcd9a0 _sys_siglist
0x00007ffff7dcdbc0 sys_sigabbrev
0x00007ffff7dd19b8 _obstack
https://opensourceforu.com/2018/06/debugging-your-programs-from-printf-to-gdb/