Você deve ter uma chamada para vector :: size (), então a função é compilada. Ele não é compilado porque esse é um modelo de classe. Eu acho que a chamada também deve estar no mesmo contexto, mas eu não tenho certeza disso.
Eu criei o gdb-7.12 com suporte a python no meu Ubuntu 14.04 e habilitei uma bonita impressão e configurei meu arquivo gdbinit seguindo o link .
Mas sempre que imprimo o tamanho de qualquer contêiner:
p ivec.size()
Cannot evaluate function -- may be inlined
Aqui está o MCVE que estou usando
#include <vector>
using namespace std;
int main(){
vector<int> ivec;
return 0;
}
Eu tentei diferentes opções de compilação
g++-6 -g -O0 -fno-inline-functions -gdwarf-2 Source.cpp --std=c++14
Na verdade, tentei todas as combinações das opções acima e sempre o mesmo problema.
Eu tentei mudar para o gdb-7.11 (também construído a partir do código-fonte) para ver se ele corrige o problema e também mudou para g ++ - 4.8, nenhum deles parece corrigir o problema.
O que estou fazendo errado? Existe alguma ordem específica em que você tem que dar as opções? Existe uma maneira de verificar se a opção -O0 está funcionando?
Você deve ter uma chamada para vector :: size (), então a função é compilada. Ele não é compilado porque esse é um modelo de classe. Eu acho que a chamada também deve estar no mesmo contexto, mas eu não tenho certeza disso.
Tags gdb