При попытке отладить панику в kubelet
я безуспешно пытался прикрепить delve
к kubelet
исполняемому файлу:
me@mycomputer:~$ sudo dlv attach 23796
could not attach to pid 23796: could not open debug info
file
и objdump --syms
показывают, что отладочная информация не включена в kubelet
:
me@mycomputer:~$ file _output/bin/kubelet
_output/bin/kubelet: ELF 64-bit LSB executable, x86-64, version 1
(SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=c7a1645940f91048eea9086bd0500deb7ec75b38, for
GNU/Linux 3.2.0, stripped
me@mycomputer:~$ objdump --syms _output/bin/kubelet
_output/bin/kubelet: file format elf64-x86-64
SYMBOL TABLE:
no symbols
Я пробовал разные варианты при сборке kubelet
:
make WHAT=cmd/kubelet GOGCFLAGS=-dwarf
или
make WHAT=cmd/kubelet GOFLAGS=-dwarf
но отладочная информация по-прежнему не включена в исполняемый файл. Мне кажется, что опция -w
включена по умолчанию в go tool link
, что лишает таблицу символов DWARF экономии конечного размера исполняемого файла (см. здесь ). Но я не смог изменить это.
Есть мысли о том, как мне построить kubelet
, чтобы включить отладочную информацию?