Я работаю над Ubuntu 14.04 LTS.nm против gdb break
У меня есть исполняемый файл exec
, составленный от file.c
. file.c
использует функции из статической библиотеки. Например, предположим, что fubar()
является функцией статической библиотеки, которая используется в file.c
. Это то, что я заметил.
nm exec | grep fubar
дает определенное значение.
(в моей системе и для моего исполняемого файла,0808377f
)gdb ./exec
, а затемbreak fubar
дает другое значение.
(в моей системе и для моего исполняемого файла,0x8083785
)
Когда я сделать подобную вещь для другого исполняемого файла (exec1
, составленный из file1.c
, он выдает то же значение для обеих команд).
Обе команды должны выдавать один и тот же виртуальный адрес. Не так ли? Я, очевидно, что-то пропустил. Может кто-нибудь объяснить, что именно происходит? И в чем разница между обеими командами.