Skip to content
DwarfLinesResolve

DwarfLinesResolve

Description

Find the entry covering vaddr (file-relative virtual address). The match is the row with the greatest address <= vaddr whose sequence has not ended; if vaddr falls past the last row of every sequence, returns NULL.

Success

Returns a pointer to the matching entry inside self->entries. Valid until DwarfLinesDeinit.

Failure

Returns NULL when no row covers vaddr.

Usage example (Cross-references)

Usage examples (Cross-references)
        bool       ok    = false;
        if (built) {
            const DwarfLineEntry *e = DwarfLinesResolve(&lines, file_relative);
            if (e && e->file && ZstrFindSubstring(e->file, "Dwarf.c") != NULL && e->line > 0) {
                ok = true;
        }
        if (cache_entry->dwarf_ok) {
            const DwarfLineEntry *de = DwarfLinesResolve(&cache_entry->dwarf, file_relative);
            if (de) {
                out->source_file   = de->file;
    // ---------------------------------------------------------------------------
    
    const DwarfLineEntry *DwarfLinesResolve(const DwarfLines *self, u64 vaddr) {
        if (!self || self->entries.length == 0)
            return NULL;
Last updated on