1
(gdb) l main
...
4614 if (do_daemonize)
4615 save_pid(getpid(), pid_file);
(gdb) l save_pid
Function "save_pid" not defined.
,並有其在源文件中定義:爲什麼這個靜態函數沒有調試符號?
static void save_pid(const pid_t pid, const char *pid_file) {
FILE *fp;
...
}
save_pid
和main
是相同的源文件中,但只有main
有調試符號,爲什麼?
UPDATE
另一個測試用例一個非常簡單的靜態函數:
#include <stdio.h>
static int test()
{
return 0;
}
int main(void)
{
//int i = 6;
printf("%f",6.4);
return 0;
}
gcc -Wall -g test.c test
但符號test
是存在的!
@ geekosaur,感謝您的回覆!但我只是做了另一個測試,一個非常簡單的靜態函數,但它並沒有被丟棄。 – gdb 2011-04-01 06:42:25
然後你必須顯示整個源文件。但說實話,我想你想問問編譯器它做了什麼('gcc -v ...')。 – geekosaur 2011-04-01 06:43:23
@ geekosaur,我已經更新了另一個測試用例:) – gdb 2011-04-01 06:48:29