golang调用cgocoredump获得方法

https://segmentfault.com/a/ 写一个错误的c程序 package dlsym import "testing" func Test_intercept(t *testing.T) { Intercept("gethostbyname\x00") } package dlsym // #cgo CFLAGS: -I. // #include <stddef.h> // #include "dlsym_wrapper.h" import "C" import "unsafe" func Intercept(symbol string) { ptr := unsafe.Pointer(&([]byte(symbol)[0])) C.intercept((*C.char)(ptr), C.size_t(len(symbol))) } #include <dlfcn.h> #include <stddef.h> #include <stdio.h> void intercept(char *symbol, size_t symbol_len) { symbol = NULL; // will cause SIGSEGV printf("%s\n", symbol); fflush(stdout); } 编

golang实现单链表

https://segmentfault.com/a/ package main //链表实现 import ( "fmt" "os" ) //定义错误常量 const ( ERROR = -1000000001 ) //定义元素类型 type Element int64 //定义节点 type LinkNode struct { Data Element //数据域 Nest *LinkNode //指针域,指向下一个节