Чтение КАРЛИКОВОГО файла в MAC OSX

Вот урок по угловым наблюдаемым из угловой документации.

Основное использование и термины

В качестве издателя вы создаете экземпляр Observable, который определяет функцию подписчика. Это функция, которая выполняется, когда потребитель вызывает метод subscribe (). Функция подписчика определяет, как получать или генерировать значения или сообщения для публикации.

Чтобы выполнить созданную вами наблюдаемую и начать получать уведомления, вы вызываете ее метод subscribe () , передавая наблюдателя. Это объект JavaScript, который определяет обработчики получаемых вами уведомлений. Вызов подписки () возвращает объект Subscription, у которого есть метод unsubscribe (), который вызывается для прекращения получения уведомлений.

https://angular.io/guide/observables

7
задан Benjamin 4 October 2014 в 14:36
поделиться

2 ответа

Спецификация для DWARF-2 и DWARF-3 находится здесь:

http://dwarfstd.org/dwarf-2.0.0.pdf

http: // dwarfstd. org / Dwarf3.pdf

Здесь есть приличная библиотека для чтения файлов DWARF:

http://reality.sgiweb.org/davea/dwarf.html

Вы можете получить и использовать эту библиотеку для чтения ваши файлы DWARF (они читаются как DWARF-2 и DWARF-3) или вы можете взглянуть на исходный код, чтобы понять, как написать свой собственный набор библиотек / функций для выполнения этой работы.

4
ответ дан 7 December 2019 в 12:24
поделиться

Вы можете посмотреть avr-readelf в binutils. Функция display_debug_lines () в binutils / dwarf.c выполняет работу по декодированию информации о номере файла DWARF.

Также, как предлагалось выше, вы можете использовать libdwarf. Это прекрасно скрывает низкоуровневые сложности DWARF и позволяет вам сосредоточиться на получении данных.

После настройки libdwarf с помощью elfdescriptor и получения структуры Dwarf_Debug вы можете сделать следующее:

  1. Обойти все блоки компиляции с помощью dwarf_srclines ()
  2. использовать dwarf_srclines () на каждом cu
  3. использовать dwarf_lineaddr () для каждой записи в массиве, возвращенном dwarf_srclines ()
  4. , не забудьте использовать dwarf_dealloc () в нужных местах.
1
ответ дан 7 December 2019 в 12:24
поделиться