Changeset 40eab9f in mainline for kernel/generic/include


Ignore:
Timestamp:
2023-11-03T18:47:41Z (2 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master, topic/msim-upgrade, topic/simplify-dev-export
Children:
b1397ab
Parents:
dcd8214
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-11-03 18:46:22)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-11-03 18:47:41)
Message:

Print symbol names and line numbers in stacktraces for init tasks

Only useful in select few situations, but useful nonetheless.

Location:
kernel/generic/include
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/debug/line.h

    rdcd8214 r40eab9f  
    3333#include <stddef.h>
    3434#include <stdint.h>
     35#include <debug/sections.h>
    3536
    3637struct debug_line_program_header {
     
    103104}
    104105
    105 extern bool debug_line_get_address_info(uintptr_t addr, int op_index, const char **file, const char **dir, int *line, int *col);
     106extern bool debug_line_get_address_info(debug_sections_t *scs, uintptr_t addr, int op_index, const char **file, const char **dir, int *line, int *col);
    106107
    107108#endif /* DWARFS_LINE_H_ */
  • kernel/generic/include/debug/sections.h

    rdcd8214 r40eab9f  
    3333#include <stddef.h>
    3434
    35 extern const void *debug_aranges;
    36 extern size_t debug_aranges_size;
     35typedef struct {
     36        const void *debug_aranges;
     37        size_t debug_aranges_size;
    3738
    38 extern const void *debug_info;
    39 extern size_t debug_info_size;
     39        const void *debug_info;
     40        size_t debug_info_size;
    4041
    41 extern const void *debug_abbrev;
    42 extern size_t debug_abbrev_size;
     42        const void *debug_abbrev;
     43        size_t debug_abbrev_size;
    4344
    44 extern const void *debug_line;
    45 extern size_t debug_line_size;
     45        const void *debug_line;
     46        size_t debug_line_size;
    4647
    47 extern const char *debug_str;
    48 extern size_t debug_str_size;
     48        const char *debug_str;
     49        size_t debug_str_size;
    4950
    50 extern const char *debug_line_str;
    51 extern size_t debug_line_str_size;
     51        const char *debug_line_str;
     52        size_t debug_line_str_size;
    5253
    53 extern const void *debug_rnglists;
    54 extern size_t debug_rnglists_size;
     54        const void *debug_rnglists;
     55        size_t debug_rnglists_size;
    5556
    56 extern const void *eh_frame_hdr;
    57 extern size_t eh_frame_hdr_size;
     57        const void *eh_frame_hdr;
     58        size_t eh_frame_hdr_size;
    5859
    59 extern const void *eh_frame;
    60 extern size_t eh_frame_size;
     60        const void *eh_frame;
     61        size_t eh_frame_size;
    6162
    62 extern const elf_symbol_t *symtab;
    63 extern size_t symtab_size;
     63        const elf_symbol_t *symtab;
     64        size_t symtab_size;
    6465
    65 extern const char *strtab;
    66 extern size_t strtab_size;
     66        const char *strtab;
     67        size_t strtab_size;
     68} debug_sections_t;
     69
     70extern debug_sections_t kernel_sections;
     71
     72debug_sections_t get_debug_sections(const void *elf, size_t elf_size);
    6773
    6874#endif /* DEBUG_SECTIONS_H_ */
  • kernel/generic/include/proc/program.h

    rdcd8214 r40eab9f  
    5656
    5757extern errno_t program_create(as_t *, uspace_addr_t, char *, program_t *);
    58 extern errno_t program_create_from_image(void *, char *, program_t *);
     58extern errno_t program_create_from_image(void *, size_t, char *, program_t *);
    5959extern errno_t program_create_loader(program_t *, char *);
    6060extern void program_ready(program_t *);
  • kernel/generic/include/proc/task.h

    rdcd8214 r40eab9f  
    3636#define KERN_TASK_H_
    3737
    38 #include <cpu.h>
    39 #include <ipc/ipc.h>
    40 #include <ipc/event.h>
    41 #include <ipc/kbox.h>
    42 #include <synch/spinlock.h>
    43 #include <synch/mutex.h>
     38#include <abi/proc/task.h>
     39#include <abi/sysinfo.h>
    4440#include <adt/list.h>
    4541#include <adt/odict.h>
    46 #include <security/perm.h>
     42#include <arch/context.h>
     43#include <arch/cpu.h>
     44#include <arch/fpu_context.h>
    4745#include <arch/proc/task.h>
    4846#include <arch/proc/thread.h>
    49 #include <arch/context.h>
    50 #include <arch/fpu_context.h>
    51 #include <arch/cpu.h>
     47#include <arch.h>
     48#include <cap/cap.h>
     49#include <cpu.h>
     50#include <debug/sections.h>
     51#include <ipc/event.h>
     52#include <ipc/ipc.h>
     53#include <ipc/kbox.h>
     54#include <mm/as.h>
    5255#include <mm/tlb.h>
    5356#include <proc/scheduler.h>
     57#include <security/perm.h>
     58#include <synch/mutex.h>
     59#include <synch/spinlock.h>
    5460#include <udebug/udebug.h>
    55 #include <mm/as.h>
    56 #include <abi/proc/task.h>
    57 #include <abi/sysinfo.h>
    58 #include <arch.h>
    59 #include <cap/cap.h>
    6061
    6162#define TASK                 CURRENT->task
     
    131132        uint64_t ucycles;
    132133        uint64_t kcycles;
     134
     135        debug_sections_t *debug_sections;
    133136} task_t;
    134137
  • kernel/generic/include/symtab.h

    rdcd8214 r40eab9f  
    3636#define KERN_SYMTAB_H_
    3737
     38#include <stdbool.h>
    3839#include <typedefs.h>
     40#include <debug/sections.h>
    3941
    4042extern void symtab_print_search(const char *);
     
    4244extern const char *symtab_fmt_name_lookup(uintptr_t);
    4345extern errno_t symtab_addr_lookup(const char *, uintptr_t *);
    44 extern const char *symtab_name_lookup(uintptr_t, uintptr_t *);
     46extern const char *symtab_name_lookup(uintptr_t, uintptr_t *, debug_sections_t *);
    4547
    4648#endif
Note: See TracChangeset for help on using the changeset viewer.