Compare commits
2 Commits
845da00c71
...
b62238086b
| Author | SHA1 | Date | |
|---|---|---|---|
|
b62238086b
|
|||
|
cb8d9add96
|
@ -545,4 +545,11 @@ alias gpu = git push -u origin
|
||||
alias gsta = git stash push
|
||||
alias gstp = git stash pop
|
||||
|
||||
# random scripts
|
||||
source ~/.local/nu/readelf.nu
|
||||
|
||||
# init zoxide
|
||||
source ~/.cache/zoxide.nu
|
||||
|
||||
# init starship prompt
|
||||
source ~/.cache/starship/init.nu
|
||||
|
||||
@ -63,3 +63,4 @@ let-env NU_PLUGIN_DIRS = [
|
||||
|
||||
mkdir ~/.cache/starship
|
||||
starship init nu | save ~/.cache/starship/init.nu
|
||||
zoxide init nushell | save ~/.cache/zoxide.nu
|
||||
|
||||
36
tree/.local/nu/readelf.nu
Executable file
36
tree/.local/nu/readelf.nu
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/env nu
|
||||
|
||||
def elf-sections [
|
||||
elf: string # ELF-file to inspect
|
||||
] {
|
||||
LANG=C readelf --wide --sections $elf |
|
||||
parse -r " +\\[ *\\S+\\] +(?<name>\\.\\S+) +(?<type>\\S+) +0*(?<addr>\\S+) +0*(?<off>\\S+) +0*(?<size>\\S+).*" |
|
||||
into int -r 16 "addr" "off" "size"
|
||||
|
||||
}
|
||||
|
||||
def elf-symbols [
|
||||
elf: string # ELF-file to inspect
|
||||
--section (-s): string
|
||||
] {
|
||||
|
||||
let symbols = (
|
||||
LANG=C readelf --wide --syms --demangle=rust $elf |
|
||||
tail -n +5 |
|
||||
parse -r " *(?<num>\\d+): (?<addr>\\S+) +(?<size>\\S+) +(?<type>\\S+) +(?<bind>\\S+) +(?<vis>\\S+) +(?<ndx>\\S+) (?<name>.*)" |
|
||||
into int "size" |
|
||||
into int "num" |
|
||||
into int -r 16 "addr"
|
||||
)
|
||||
|
||||
|
||||
if $section == null {
|
||||
$symbols
|
||||
} else {
|
||||
let section = (elf-sections $elf | where name == $section | first)
|
||||
let section_start = ($section | get addr)
|
||||
let section_end = ($section_start + ($section | get size))
|
||||
|
||||
$symbols | where addr >= $section_start && addr < $section_end
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user