Бодаюсь тут с легаси кодом. Ведет он себя очень странно: будучи запущенным под дебаггером работает правильно (я попадаю в нужную точку останова). Но простой запуск демонстрирует другое поведение (действия в исследуемом куске не выполняются, сообщение в консоль в этом же месте не пишется). По моему опыту это может свидетельствовать об выходе за границу массива или значение где-то накладывается.
Обычно в таких ситуациях мне помогал valgrind. Но сейчас на Debian 9 Stable что-то он у меня не запускается. Вот что выдает memcheck:
$ valgrind --tool=memcheck ./device ./processLog.txt
==3946== Memcheck, a memory error detector
==3946== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==3946== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==3946== Command: ./device ./processLog.txt
==3946==
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: strlen
valgrind: in an object with soname matching: ld-linux.so.2
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux.so.2
valgrind:
valgrind: Possible fixes: (1, short term): install glibc's debuginfo
valgrind: package on this machine. (2, longer term): ask the packagers
valgrind: for your Linux distribution to please in future ship a non-
valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
valgrind: that exports the above-named function using the standard
valgrind: calling conventions for this platform. The package you need
valgrind: to install for fix (1) is called
valgrind:
valgrind: On Debian, Ubuntu: libc6-dbg
valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo
valgrind:
valgrind: Cannot continue -- exiting now. Sorry.
Пакет libc6-dbg у меня установлен. Что еще можно сделать, чтобы valgrind заработал?
Я предполагаю, что пострипан ld-linux.so.2, но не могу собразить где взять непострипаный, компилировать его чтоли? А как?