RTEMS | Add dladdr() support to RTEMS (!679)

mazen Adel (@mez3n) gitlab at rtems.org
Sun Aug 24 13:06:19 UTC 2025




mazen Adel commented on a discussion on cpukit/libdl/rtl.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/679#note_129369

 > +rtems_rtl_obj_find_symbol_by_addr (const rtems_rtl_obj* obj, const void* addr)
 > +{
 > +  rtems_rtl_obj_sym* best_sym = NULL;
 > +  const void*        best_addr = NULL;
 > +  size_t             i;
 > +  
 > +  for (i = 0; i < obj->global_syms; ++i)
 > +  {
 > +    rtems_rtl_obj_sym* sym = &obj->global_table[i];
 > +    
 > +    if (sym->value <= addr)
 > +    {
 > +      if (!best_sym || sym->value > best_addr)
 > +      {
 > +        best_sym = sym;
 > +        best_addr = sym->value;

It searches the whole sym table to find the `the symbol that has the largest address less than or equal to the specified address` If it is an exact match it returns. Else it finds the sym that has an address less than `addr` and higher than the current `best_sym`.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/679#note_129369
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20250824/e7ec3a74/attachment-0001.htm>


More information about the bugs mailing list