MCPcopy Index your code
hub / github.com/encounter/objdiff / symbol_hover

Function symbol_hover

objdiff-core/src/diff/display.rs:418–492  ·  view source on GitHub ↗
(
    obj: &Object,
    symbol_index: usize,
    addend: i64,
    override_color: Option<HoverItemColor>,
)

Source from the content-addressed store, hash-verified

416}
417
418pub fn symbol_hover(
419 obj: &Object,
420 symbol_index: usize,
421 addend: i64,
422 override_color: Option<HoverItemColor>,
423) -> Vec<HoverItem> {
424 let Some(symbol) = obj.symbols.get(symbol_index) else {
425 return Vec::new();
426 };
427 let addend_str = match addend.cmp(&0i64) {
428 Ordering::Greater => format!("+{addend:x}"),
429 Ordering::Less => format!("-{:x}", -addend),
430 _ => String::new(),
431 };
432 let mut out = Vec::new();
433 out.push(HoverItem::Text {
434 label: "Name".into(),
435 value: format!("{}{}", symbol.name, addend_str),
436 color: override_color.clone().unwrap_or_default(),
437 });
438 if let Some(demangled_name) = &symbol.demangled_name {
439 out.push(HoverItem::Text {
440 label: "Demangled".into(),
441 value: demangled_name.into(),
442 color: override_color.clone().unwrap_or_default(),
443 });
444 }
445 if let Some(section) = symbol.section {
446 out.push(HoverItem::Text {
447 label: "Section".into(),
448 value: obj.sections[section].name.clone(),
449 color: override_color.clone().unwrap_or_default(),
450 });
451 out.push(HoverItem::Text {
452 label: "Address".into(),
453 value: format!("{:x}{}", symbol.address, addend_str),
454 color: override_color.clone().unwrap_or_default(),
455 });
456 if symbol.flags.contains(SymbolFlag::SizeInferred) {
457 out.push(HoverItem::Text {
458 label: "Size".into(),
459 value: format!("{:x} (inferred)", symbol.size),
460 color: override_color.clone().unwrap_or_default(),
461 });
462 } else {
463 out.push(HoverItem::Text {
464 label: "Size".into(),
465 value: format!("{:x}", symbol.size),
466 color: override_color.clone().unwrap_or_default(),
467 });
468 }
469 if let Some(align) = symbol.align {
470 out.push(HoverItem::Text {
471 label: "Alignment".into(),
472 value: align.get().to_string(),
473 color: override_color.clone().unwrap_or_default(),
474 });
475 }

Callers 3

symbol_hoverMethod · 0.85
symbol_hover_uiFunction · 0.85
relocation_hoverFunction · 0.85

Calls 4

getMethod · 0.80
cmpMethod · 0.80
pushMethod · 0.80
symbol_hoverMethod · 0.45

Tested by

no test coverage detected