Gcc ile bir sürüm oluşturduğumda (yani, -g
belirtmeme rağmen), hala ikili sembollerle bitiyor ve bunları kaldırmak için strip
kullanmam gerekiyor. Aslında, yine de fonksiyonlarını kırabilir ve gdb'de (satır numaraları olmadan da olsa) geri dönüşler alabilirim.Neden gcc, hata ayıklamayan yapıya semboller ekliyor?
Bu beni şaşırttı - herkes bunun neden olduğunu açıklayabilir mi?
örn.
gcc -o foo foo.c
nm foo | grep blah
#include <stdio.h>
static void blah(void)
{
printf("hello world\n");
}
int main(int argc, char *argv[])
{
blah();
return 0;
}
:
08048374 t blah