⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkstack

📁 This a SOFTWARE pbx DRIVER
💻
字号:
#!/bin/bash## Written by Keith Owens, modified by Arjan van de Ven to output in deciman## Usage :  check-stack.sh vmlinux $(/sbin/modprobe -l)##	Run a compiled ix86 kernel and print large local stack usage.##	/>:/{s/[<>:]*//g; h; }   On lines that contain '>:' (headings like#	c0100000 <_stext>:), remove <, > and : and hold the line.  Identifies#	the procedure and its start address.##	/subl\?.*\$0x[^,][^,][^,].*,%esp/{    Select lines containing#	subl\?...0x...,%esp but only if there are at least 3 digits between 0x and#	,%esp.  These are local stacks of at least 0x100 bytes.##	s/.*$0x\([^,]*\).*/\1/;   Extract just the stack adjustment#	/^[89a-f].......$/d;   Ignore line with 8 digit offsets that are#	negative.  Some compilers adjust the stack on exit, seems to be related#	to goto statements#	G;   Append the held line (procedure and start address).#	s/\(.*\)\n.* \(.*\)/\1 \2/;  Remove the newline and procedure start#	address.  Leaves just stack size and procedure name.#	p; };   Print stack size and procedure name.##	/subl\?.*%.*,%esp/{   Selects adjustment of %esp by register, dynamic#	arrays on stack.#	G;   Append the held line (procedure and start address).#	s/\(.*\)\n\(.*\)/Dynamic \2 \1/;   Reformat to "Dynamic", procedure#	start address, procedure name and the instruction that adjusts the#	stack, including its offset within the proc.#	p; };   Print the dynamic line.###	Leading spaces in the sed string are required.## first check if it's x86, since only that arch works for nowuname -m  | grep -q 86$ > /dev/null || exit#objdump --disassemble "$@" | \sed -ne '/>:/{s/[<>:]*//g; h; } /subl\?.*\$0x[^,][^,][^,].*,%esp/{ s/.*\$0x\([^,]*\).*/\1/; /^[89a-f].......$/d; G; s/\(.*\)\n.* \(.*\)/\1 \2/; p; }; /subl\?.*%.*,%esp/{ G; s/\(.*\)\n\(.*\)/Dynamic \2 \1/; p; }; ' | \ sort | \perl -e 'while (<>) { if (/^([0-9a-f]+)(.*)/) { $decn = hex("0x" . $1); if ($decn > 400) { print "$decn $2\n";} } }'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -