[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека |
Юридическая информация |
Поиск ]
Программирование: Разработка и отладка программ
- symbol_addrs
- read_data
- write_data
- read_regs
- write_regs
- alloc
- realloc
- dealloc
- print
Обеспечивают доступ к средствам отладчика или приложения, необходимым для
работы библиотеки отладки нитей.
Эти функции предоставляются отладчиком, связанным с библиотекой
отладки нитей.
#include <sys/pthdebug.h>
int symbol_addrs(pthdb_user_t user,
pthdb_symbol_t symbols[],
int count)
int read_data(pthdb_user_t user,
void * buf,
pthdb_addr_t addr,
int size)
int write_data(pthdb_user_t user,
void * buf,
pthdb_addr_t addr,
int size)
int read_regs(pthdb_user_t user,
tid_t tid,
unsigned long long flags,
struct context64 * context)
int write_regs(pthdb_user_t user,
tid_t tid,
unsigned long long flags,
struct context64 * context)
int alloc(pthdb_user_t user,
size_t len,
void ** bufp)
int realloc(pthdb_user_t user,
void * buf,
size_t len,
void ** bufp)
int dealloc(pthdb_user_t user,
void * buf)
int print(pthdb_user_t user,
char * str)
- int symbol_addrs()
- Определяет адрес символов в отлаживаемой программе. Библиотека
pthread вызывает эту функцию для получения адреса известных символов
отладки. Если имя символа - NULL или "", функция возвращает адрес 0LL,
просмотр не выполняется и сообщение об ошибке не выдается. Если
выполнение функции завершено успешно, она возвращает 0, в противном случае
функция возвращает ненулевое значение. Точнее, если задан флаг
PTHDB_FLAG_SUSPEND приложение, то программа может пользоваться либо функцией
symbol_addrs из библиотеки pthread, передавая ей значение NULL, либо
собственной функцией symbol_addrs.
- int read_data()
- Считывает указанное количество байт данных из активного процесса или из
файла дампа и помещает эти данные в буфер. Если выполнение функции
завершено успешно, она возвращает 0, в противном случае она возвращает
ненулевое значение. Эта функция требуется всегда.
- int write_data()
- Записывает указанное число байт данных. С помощью этой функции
библиотека pthdebug может передавать данные активному процессу. Если
выполнение функции завершено успешно, она возвращает 0, в противном случае
функция возвращает ненулевое значение. Эта функция применяется в
случаях, когда задан флаг PTHDB_FLAG_HOLD, а function.
- int read_regs()
- Функция callback для чтения регистров. Она должна считывать
контекст нити ядра отлаживаемой программы из активного процесса или из файла
дампа. Эта информация представлена в формате context64 как для
32-разрядных, так и для 64-разрядных процессов. Если выполнение функции
завершено успешно, она возвращает 0, в противном случае функция возвращает
ненулевое значение. Эта функция требуется только при работе с функциями
pthdb_pthread_context() и pthdb_pthread_setcontext().
- int write_regs()
- Функция записи в регистры. Она должна передавать указанную
контекстную информацию нити ядра отлаживаемой программы с указанным ИД.
Если выполнение функции завершено успешно, она возвращает 0, в противном
случае функция возвращает ненулевое значение. Эта функция требуется
только при работе с функцией pthdb_pthread_setcontext().
- int alloc()
- Выделяет область памяти указанного размера и возвращает указатель на эту
область. Если выполнение функции завершено успешно, она возвращает 0, в
противном случае функция возвращает ненулевое значение. Эта функция
требуется всегда.
- int realloc()
- Изменяет размер области памяти на основе переданных параметров len и buf и
возвращает указатель на новую область памяти. Если выполнение функции
завершено успешно, она возвращает 0, в противном случае функция возвращает
ненулевое значение. Эта функция требуется всегда.
- int dealloc()
- Освобождает указанный буфер. Если выполнение функции завершено
успешно, она возвращает 0, в противном случае функция возвращает ненулевое
значение. Эта функция требуется всегда.
- int print()
- Отправляет строку символов на стандартное устройство вывода
отладчика. Если выполнение функции завершено успешно, она возвращает 0,
в противном случае функция возвращает ненулевое значение. Эта функция
callback предназначена только для отладки библиотеки.
Выводимые сообщения не переводятся на другие языки и не описываются в
документации, предназначенной для пользователей. Если вы не отлаживаете
библиотеку отладки нитей, в эту функцию следует передавать значение
NULL.
Примечание: Если write_data() и
write_regs() равны NULL, то библиотека отладки нитей не
будет записывать данные в стандартный вывод и регистры. При вызове
функции pthdb_pthread_set_context() в случае, когда
write_data() и write_regs() равны NULL, она возвращает
значение PTHDB_NOTSUP.
пользователь
| Описатель пользователя.
|
символы
| Массив символов.
|
число
| Число символов.
|
буфер
| Буфер.
|
адрес
| Адрес для чтения или записи.
|
размер
| Размер буфера.
|
флаги
| Флаги сеансов, необходимые значения - PTHDB_FLAG_GPRS,
PTHDB_FLAG_SPRS, PTHDB_FLAG_FPRS и
PTHDB_FLAG_REGS.
|
идентификатор нити
| ИД нити.
|
флаги
| Флаги, определяющие, из какого регистра следует считать информацию или в
какой регистр ее следует записать.
|
контекст
| Структура контекста.
|
длина
| Размер выделяемого буфера или буфера, на который нужно заменить исходный
буфер.
|
буфер
| Указатель на буфер.
|
строка
| Строка для печати.
|
Если выполнение функции завершено успешно, она возвращает 0, в противном
случае она возвращает ненулевое значение.
Файл pthdebug.h.
[ Страница назад | Страница вперед | Содержание | Индекс |
Библиотека |
Юридическая информация |
Поиск ]