отладка основных файлов - PullRequest
1 голос
/ 17 ноября 2011

Я хочу написать программу, которая может читать файлы ядра в Linux.Однако я не могу найти какую-либо документацию, которая может помочь мне в этом отношении.Может, кто-нибудь подскажет, где найти ресурсы?

Ответы [ 3 ]

1 голос
/ 26 ноября 2011

Вы также можете взглянуть на GDB исходный код , gdb/core*.

Например, в gdb/corelow.c вы можете прочитать в конце:

  static struct target_ops core_ops;

  core_ops.to_shortname = "core";
  core_ops.to_longname = "Local core dump file";
  core_ops.to_doc = "Use a core file as a target.  Specify the filename of the core file.";
  core_ops.to_open = core_open;
  core_ops.to_close = core_close;
  core_ops.to_attach = find_default_attach;
  core_ops.to_detach = core_detach;
  core_ops.to_fetch_registers = get_core_registers;
  core_ops.to_xfer_partial = core_xfer_partial;
  core_ops.to_files_info = core_files_info;
  core_ops.to_insert_breakpoint = ignore;
  core_ops.to_remove_breakpoint = ignore;
  core_ops.to_create_inferior = find_default_create_inferior;
  core_ops.to_thread_alive = core_thread_alive;
  core_ops.to_read_description = core_read_description;
  core_ops.to_pid_to_str = core_pid_to_str;
  core_ops.to_stratum = process_stratum;
  core_ops.to_has_memory = core_has_memory;
  core_ops.to_has_stack = core_has_stack;
  core_ops.to_has_registers = core_has_registers;

struct target_ops определяет универсальный интерфейс, который верхняя часть GDB будет использовать для связи с target . Эта цель может быть локальным процессом Unix, удаленным процессом, файлом ядра, ...

Так что, если вы только исследуете, что происходит с этими функциями, вы не будете перегружены общей частью реализации отладчика.

(в зависимости от вашей конечной цели, вы также можете повторно использовать этот интерфейс и его реализацию в своем приложении, не должен полагаться на многие другие вещи.

0 голосов
/ 13 июня 2016

Основные файлы можно просмотреть с помощью dbx(1) или mdb(1) или одного из инструментов proc(1).

0 голосов
/ 18 ноября 2011

Может быть полезно взглянуть на источник gcore http://people.redhat.com/anderson/extensions/gcore.c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...