在来自 Go 的剥离二进制文件中,这意味着什么?_cgo_topofstack@@Base
$ cat simple.go
package main
import
(
"net"
"time"
"strconv"
)
func main() {
tcpAddr, _ := net.ResolveTCPAddr("tcp4", ":7777")
listener, _ := net.ListenTCP("tcp", tcpAddr)
conn, _ := listener.Accept()
daytime := time.Now().String()+strconv.Itoa(0xdeadface)
conn.Write([]byte(daytime))
}
代码应该被剥离 - 这是什么意思?_cgo_topofstack@@Base
$ go build -gcflags=-l -ldflags "-s -w" -o simple_wo_symbols simple.go
$ objdump -D -S simple_wo_symbols > simple_wo_symbols.human
$ sed -n "198899,198904p" simple_wo_symbols.human
4b9860: e8 db c1 fb ff callq 475a40 <_cgo_topofstack@@Base+0xe4c0>
4b9865: 48 8b 44 24 18 mov 0x18(%rsp),%rax
4b986a: 48 89 44 24 70 mov %rax,0x70(%rsp)
4b986f: 48 8b 4c 24 20 mov 0x20(%rsp),%rcx
4b9874: 48 89 4c 24 40 mov %rcx,0x40(%rsp)
4b9879: ba ce fa ad de mov $0xdeadface,%edx
编辑(更好的问题规范):
为什么这个符号存在于一个剥离的二进制文件中?
批准 peter-cordes 声明:被调用的函数与 处的函数完全无关,添加此(不相关和多余的)信息是一件(奇怪的?)事情_cgo_topofstack@@Base
objdump
也许与此有关(?):有没有一种脱衣的惯用语?!
慕姐8265434
繁华开满天机
相关分类