Вот урок по угловым наблюдаемым из угловой документации.
Основное использование и термины
В качестве издателя вы создаете экземпляр Observable, который определяет функцию подписчика. Это функция, которая выполняется, когда потребитель вызывает метод subscribe (). Функция подписчика определяет, как получать или генерировать значения или сообщения для публикации.
Чтобы выполнить созданную вами наблюдаемую и начать получать уведомления, вы вызываете ее метод subscribe () , передавая наблюдателя. Это объект JavaScript, который определяет обработчики получаемых вами уведомлений. Вызов подписки () возвращает объект Subscription, у которого есть метод unsubscribe (), который вызывается для прекращения получения уведомлений.
Спецификация для 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) или вы можете взглянуть на исходный код, чтобы понять, как написать свой собственный набор библиотек / функций для выполнения этой работы.
Вы можете посмотреть avr-readelf в binutils. Функция display_debug_lines () в binutils / dwarf.c выполняет работу по декодированию информации о номере файла DWARF.
Также, как предлагалось выше, вы можете использовать libdwarf. Это прекрасно скрывает низкоуровневые сложности DWARF и позволяет вам сосредоточиться на получении данных.
После настройки libdwarf с помощью elfdescriptor и получения структуры Dwarf_Debug вы можете сделать следующее: