// dummy.go
type dummy struct {
p uintptr
}
func (d dummy) Get(i int) uint64
//func (d *dummy) Get(i int) uint64 //no way to define *dummy in assembly
func (d dummy) Get
可以定義爲:
// dummy_amd64.s
#include "textflag.h"
TEXT ·dummy·Get(SB),NOSPLIT,$0
MOVQ $42, 24(SP)
RET
我試圖
TEXT "".(*dummy).Get+0(SB),4,$0-24 //output from 6g -S
TEXT ""·(*dummy)·Get+0(SB),4,$0
TEXT ·*dummy·Get(SB),NOSPLIT,$0
//and
TEXT ·(*dummy)·Get(SB),NOSPLIT,$0
所有這些給了我同樣的錯誤:
syntax error, last name: "".
我確定我錯過了一些明顯的東西,但我似乎無法弄清楚。
試着用你正在使用的編程語言來定義函數(就我所知,去)並且反彙編目標文件。然後你會看到「真實」的功能名稱。例如,在C++中,「myClass :: myFunc(int,int)」可以在彙編程序中被命名爲_Z7myClassF6myFuncII。 – 2014-09-22 04:30:07
@MartinRosenau不幸的是,複製/粘貼輸出不起作用,我忘了在問題中加入這個。 – OneOfOne 2014-09-22 04:31:40
我發現nada gread stdlib中的'TEXT'子句。值得一個golang堅果後 - 不知道是否有可能。 – twotwotwo 2014-09-22 06:33:05