Програмирам в Mobile C (платформа за мобилни агенти върху C), която е с отворен код. Отстранявам грешки с помощта на отпечатъци, тъй като не мога да използвам gdb, защото използвам C интерпретатор (вграден Ch).
Проблемът е, че има функции, които не мога да намеря къде са дефинирани. Например, има функцията agent_queue_RemoveIndex, която се използва на множество места в изходния код, но не мога да намеря къде е дефинирана (разгледах всички файлове за дефиниране, направих grep -R на целия изходен код код, Googled го...). Когато направя grep -R, мога да намеря само извиквания на функцията, но не и дефиницията. Изглежда, че няма дефиниция agent_queue_RemoveIndex, но трябва, защото Mobile C е код с отворен код и функцията работи.
Някакви идеи какво се случва?
cscope
. Това е интерфейс, базиран на проклятия, но обикновено работи за мен. От друга страна, ако нечувствителен към главни буквиgrep -r -i agent_queue_RemoveIndex
в целия източник не го намира, той трябва или да е в системните заглавки (коитоcscope
ще проследи и намери — поне ако получи малко помощ за това къде да търси) , или сте го пренебрегнали в обилния резултат. - person Jonathan Leffler   schedule 17.03.2013grep -ri agent_queue_RemoveIndex .
показва търсения в двоични файлове. - person Ganesh   schedule 17.03.2013nm
ще изброи символите, дефинирани в обект (двоичен или библиотека), което може да помогне. Като хак, добавянето на ваша собствена конфликтна дефиниция на функцията може да доведе до полезно предупреждение за компилиране, което ви казва къде е оригиналната дефиниция... - person John Carter   schedule 17.03.2013agent_queue_RemoveIndex
. Аз лично бих grep за терминаRemoveIndex
вместо това. - person dyoo   schedule 17.03.2013ctags
(създава карта на дефиниции и използва заvi
иemacs
) - person vonbrand   schedule 17.03.2013