GDB przeskakuje do niewłaściwych linii w sposób nieuporządkowany

Konfiguracja aplikacji : Mam aplikację C ++ 11 korzystającą z następujących bibliotek innych firm:

zwiększ 1.51.0cppnetlib 0.9.4jsoncpp 0.5.0

Kod aplikacji opiera się na kilku wewnętrznych obiektach współdzielonych, wszystkie opracowane przez mój zespół (klasycznyczas połączenia przeciwko tym wspólnym obiektom jest przeprowadzane, bez użyciadlopen itp.)

Używam GCC 4.6.2 i problem pojawia się podczas używania GDB 7.4i 7.6.

OS - Red Hat Linux 7.0 (Guinness) x86-64

Problem Podczas uderzania w punkty przerwania w kodzie udostępnionych obiektów i wydawania gdbnext polecenie, czasami GDB przeskakuje wstecz do pewnych linii bez jakiegokolwiek wiarygodnego powodu (szczególnie po rzuceniu wyjątków, dla tych wyjątków odpowiednie bloki przechwytywania)

Podobne problemy w sieci są odpowiedzią na coś w rodzaju „wyłącz optymalizację GCC”, ale mój GCC CL najwyraźniej nie używa żadnej optymalizacji i poprosił o informacje debugujące, proszę zwrócić uwagę na-O0 & -g przełączniki:

COLLECT_GCC_OPTIONS= '-D' '_DEBUG' '-O0' '-g' '-Wall' '-fmessage-length=0' '-v' '-fPIC' '-D' 'BOOST_ALL_DYN_LINK' '-D' 'BOOST_PARAMETER_MAX_ARITY=15' '-D' '_GLIBCXX_USE_NANOSLEEP' '-Wno-deprecated' '-std=c++0x' '-fvisibility=hidden' '-c' '-MMD' '-MP' '-MF' 'Debug_x64/AgentRegisterer.d' '-MT' 'Debug_x64/AgentRegisterer.d' '-MT' 'Debug_x64/AgentRegisterer.o' '-o' 'Debug_x64/AgentRegisterer.o' '-shared-libgcc' '-mtune=generic' '-march=x86-64'

Należy również pamiętać, jak w przypadku DSO systemu Linuxnajbardziej znane metody, mamy ukrytą widoczność symboli, ujawniane są tylko klasy, które chcielibyśmy ujawnić (może to jest związane ???)

Jakie powinny być kolejne kroki roota powodujące ten problem?

questionAnswers(2)

yourAnswerToTheQuestion