URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7602
[ Назад ]

Исходное сообщение
"нужна помощь по отладке (glibc)"

Отправлено dennisfen , 22-Сен-08 13:55 
Доброго времени суток!
Очень нужна помощь в отладке приложения. Точнее совет. Суть проблемы: имеется простое приложение на С, в котором есть функция read(), которая читает данные из последовательного порта. Необходимо получить список всех вызовов, которые происходят с момента вызова этой функции. Пробовал jump into в Eclipse CDT, но почему-то для этой функции исходники не находятся средой(они установлены).

Содержание

Сообщения в этом обсуждении
"нужна помощь по отладке (glibc)"
Отправлено NuINu , 22-Сен-08 14:05 
>Доброго времени суток!
>Очень нужна помощь в отладке приложения. Точнее совет. Суть проблемы: имеется простое
>приложение на С, в котором есть функция read(), которая читает данные
>из последовательного порта. Необходимо получить список всех вызовов, которые происходят с
>момента вызова этой функции. Пробовал jump into в Eclipse CDT, но
>почему-то для этой функции исходники не находятся средой(они установлены).

Пардон, список каких вызовов вы хотите получить? системных?
если до момента окончания read то один, этот. если до какого то другого то смотрите strace


"нужна помощь по отладке (glibc)"
Отправлено vic , 22-Сен-08 14:13 
>>Доброго времени суток!
>>Очень нужна помощь в отладке приложения. Точнее совет. Суть проблемы: имеется простое
>>приложение на С, в котором есть функция read(), которая читает данные
>>из последовательного порта. Необходимо получить список всех вызовов, которые происходят с
>>момента вызова этой функции. Пробовал jump into в Eclipse CDT, но
>>почему-то для этой функции исходники не находятся средой(они установлены).
>
>Пардон, список каких вызовов вы хотите получить? системных?
>если до момента окончания read то один, этот. если до какого то
>другого то смотрите strace

Другими словами read() - системный вызов (man syscalls).


"нужна помощь по отладке (glibc)"
Отправлено dennisfen , 22-Сен-08 14:13 
>>Доброго времени суток!
>>Очень нужна помощь в отладке приложения. Точнее совет. Суть проблемы: имеется простое
>>приложение на С, в котором есть функция read(), которая читает данные
>>из последовательного порта. Необходимо получить список всех вызовов, которые происходят с
>>момента вызова этой функции. Пробовал jump into в Eclipse CDT, но
>>почему-то для этой функции исходники не находятся средой(они установлены).
>
>Пардон, список каких вызовов вы хотите получить? системных?
>если до момента окончания read то один, этот. если до какого то
>другого то смотрите strace

Прошу прощения, наверное не очень ясно выразился. Мне нужно получить список функций, которые вызываются _внутри_ read() и т.д. по нарастающей.


"нужна помощь по отладке (glibc)"
Отправлено Fuzzy , 22-Сен-08 14:26 
>Прошу прощения, наверное не очень ясно выразился. Мне нужно получить список функций,
>которые вызываются _внутри_ read() и т.д. по нарастающей.

Не проще посмотреть исходники glibc?


"нужна помощь по отладке (glibc)"
Отправлено dennisfen , 22-Сен-08 14:33 
>>Прошу прощения, наверное не очень ясно выразился. Мне нужно получить список функций,
>>которые вызываются _внутри_ read() и т.д. по нарастающей.
>
>Не проще посмотреть исходники glibc?

к сожалению нет=( дело в том, что в конечном итоге мне хочется получить список функций стандартного tty драйвера, которыми пользуется драйвер моего PCI-RS422 контроллера. Я понимаю, что все очень запутанно, но все же...Я с радостью приму любой совет по поводу того, как мне получить-таки список этих функций. Ковыряние в исходниках не помогло - слишком большое количество файлов, да и половина функций там явлются обертками для других функций и т.д.


"нужна помощь по отладке (glibc)"
Отправлено Fuzzy , 22-Сен-08 14:35 
Подозреваю что там используется ioctl().


"нужна помощь по отладке (glibc)"
Отправлено NuINu , 22-Сен-08 15:12 
>[оверквотинг удален]
>>
>>Не проще посмотреть исходники glibc?
>
>к сожалению нет=( дело в том, что в конечном итоге мне хочется
>получить список функций стандартного tty драйвера, которыми пользуется драйвер моего PCI-RS422
>контроллера. Я понимаю, что все очень запутанно, но все же...Я с
>радостью приму любой совет по поводу того, как мне получить-таки список
>этих функций. Ковыряние в исходниках не помогло - слишком большое количество
>файлов, да и половина функций там явлются обертками для других функций
>и т.д.

а что собственно говоря вы смотрели? вам надо исходники ядра смотреть. список функций которые выполняет драйвер не очень большой.


"нужна помощь по отладке (glibc)"
Отправлено vic , 22-Сен-08 15:01 
>>Прошу прощения, наверное не очень ясно выразился. Мне нужно получить список функций,
>>которые вызываются _внутри_ read() и т.д. по нарастающей.
>
>Не проще посмотреть исходники glibc?

read() - системный вызов, его нет и не может быть в glibc.
при вызове read() процесс передает управление ядру. Дальше происходят внутренние вызовы ядра пока не дойдет до драйвера и вызова его функции объявленную как module_read().
ЗЫ в программировании ядра линуха не силен, но как-то так в общем. Но read() точно системный вызов =))


"нужна помощь по отладке (glibc)"
Отправлено devcoder , 22-Сен-08 15:23 
>Прошу прощения, наверное не очень ясно выразился. Мне нужно получить список функций,
>которые вызываются _внутри_ read() и т.д. по нарастающей.

См. исходники ядра, модуль serial,
ключевой файл, если не ошибаюсь, serio.c


"нужна помощь по отладке (glibc)"
Отправлено devcoder , 22-Сен-08 14:39 
> Необходимо получить список всех вызовов, которые происходят с
> момента вызова этой функции.

man strace



"нужна помощь по отладке (glibc)"
Отправлено dennisfen , 22-Сен-08 16:09 
ок, спасибо, кое-что прояснили (по крайней мере информации к размышлению подкинули;))