-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathset_auto-solib-add.htm
119 lines (109 loc) · 4.87 KB
/
set_auto-solib-add.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Referensi Perintah GDB - perintah set auto-solib-add</title>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12">
<div class="main">
<h2>perintah set auto-solib-add</h2>
<p> Menentukan apakah GDB harus secara otomatis memuat simbol saat mendeteksi bahwa sebuah pustaka bersama telah dimuat.</p>
<h4>Sintaks</h4>
<div class="syntax">
<b>set</b> auto-solib-add <b>on</b><br/>
<b>set</b> auto-solib-add <b>off</b><br/>
<b>show</b> auto-solib-add<br/>
</div>
<p></p>
<h4>Mode</h4>
<dl>
<dt><b>on</b></dt>
<dd>Dalam mode ini, GDB akan secara otomatis memuat simbol-simbol saat mendeteksi bahwa sebuah pustaka bersama telah dimuat.</dd>
<dt><b>off</b></dt>
<dd>Dalam mode ini, GDB tidak akan secara otomatis memuat simbol-simbol untuk pustaka bersama yang baru dimuat. Anda dapat memuat simbol-simbol secara manual menggunakan perintah <a href="sharedlibrary.htm" tppabs="http://visualgdb.com/gdbreference/commands/sharedlibrary"><b>sharedlibrary</b></a>.</dd>
</dl>
<p></p>
<h4>Nilai Default</h4>
<p>Nilai default untuk variabel <b>auto-solib-add</b> adalah <b>on</b>.</p>
<p></p>
<h4>Contoh</h4>
<p>Pada contoh ini, kita akan melakukan debug pada program sederhana yang memuat dan membebaskan (unload) sebuah pustaka bersama secara berulang:</p>
<pre>
<code>
#include <stdio.h>
#include <dlfcn.h>
int main()
{
for (int i = 0; i < 5; i++)
{
void *p = dlopen("./libTest.so", RTLD_NOW);
printf("Loaded library\n");
dlclose(p);
printf("Unloaded library\n");
}
return 0;
}
</code>
</pre>
<p></p>
<p>Contoh berikut menunjukkan bagaimana perintah <b>set auto-solib-add</b> dapat menonaktifkan pembebanan simbol secara otomatis yang biasanya dilakukan oleh GDB:</p>
<pre>
<code>
(gdb) <b>break 8</b>
Breakpoint 1 at 0x80484b7: file main.cpp, line 8.
(gdb) <b>run</b>
Starting program: /home/testuser/libtest/testApp
Breakpoint 1, main () at main.cpp:8
8 void *p = dlopen("./libTest.so", RTLD_NOW);
(gdb) <b>info shared</b>
From To Syms Read Shared Object Library
0xb7fde820 0xb7ff6b9f Yes /lib/ld-linux.so.2
0xb7fc2a60 0xb7fc3a08 Yes /lib/i386-linux-gnu/libdl.so.2
0xb7e2ef10 0xb7f635cc Yes /lib/i386-linux-gnu/libc.so.6
(gdb) <b>next</b>
9 printf("Loaded library\n");
(gdb) <b>info shared</b>
From To Syms Read Shared Object Library
0xb7fde820 0xb7ff6b9f Yes /lib/ld-linux.so.2
0xb7fc2a60 0xb7fc3a08 Yes /lib/i386-linux-gnu/libdl.so.2
0xb7e2ef10 0xb7f635cc Yes /lib/i386-linux-gnu/libc.so.6
0xb7fd83a0 0xb7fd84c8 Yes ./libTest.so
(gdb) <b>continue</b>
Continuing.
Loaded library
Unloaded library
Breakpoint 1, main () at main.cpp:8
8 void *p = dlopen("./libTest.so", RTLD_NOW);
(gdb) <b>info shared</b>
From To Syms Read Shared Object Library
0xb7fde820 0xb7ff6b9f Yes /lib/ld-linux.so.2
0xb7fc2a60 0xb7fc3a08 Yes /lib/i386-linux-gnu/libdl.so.2
0xb7e2ef10 0xb7f635cc Yes /lib/i386-linux-gnu/libc.so.6
(gdb) <b>set auto-solib-add off</b>
(gdb) <b>next</b>
9 printf("Loaded library\n");
(gdb) <b>info shared</b>
From To Syms Read Shared Object Library
0xb7fde820 0xb7ff6b9f Yes /lib/ld-linux.so.2
0xb7fc2a60 0xb7fc3a08 Yes /lib/i386-linux-gnu/libdl.so.2
0xb7e2ef10 0xb7f635cc Yes /lib/i386-linux-gnu/libc.so.6
0xb7fd83a0 0xb7fd84c8 No ./libTest.so
(gdb) <b>sharedlibrary</b>
Reading symbols from ./libTest.so...done.
Loaded symbols for ./libTest.so
(gdb) <b>info shared</b>
From To Syms Read Shared Object Library
0xb7fde820 0xb7ff6b9f Yes /lib/ld-linux.so.2
0xb7fc2a60 0xb7fc3a08 Yes /lib/i386-linux-gnu/libdl.so.2
0xb7e2ef10 0xb7f635cc Yes /lib/i386-linux-gnu/libc.so.6
0xb7fd83a0 0xb7fd84c8 Yes ./libTest.so
</code>
</pre>
</div>
</div>
</div>
</div>
</body>
</html>