W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
作為下一章goroutine調(diào)度的一個(gè)前序,本章先講一些基礎(chǔ)內(nèi)容,看一看Go語(yǔ)言編寫的程序的初始化過(guò)程。其實(shí)初始化過(guò)程中會(huì)做很多很多的事情,這里忽略大部分細(xì)節(jié),只看一下脈絡(luò)。從程序入口開(kāi)始分析也是學(xué)習(xí)源代碼的一個(gè)好方式。
首先,寫一個(gè)hello world文件,內(nèi)容如下:
package main
import "fmt"
func main() {
fmt.Println("hello world!")
}
編譯,使用gdb調(diào)試。給下列函數(shù)下斷點(diǎn):
_rt0_amd64_darwin
main
_rt0_amd64
runtime.check
runtime.args
runtime.osinit
runtime.hashinit
runtime.schedinit
runtime.newproc
runtime.mstart
main.main
runtime.exit
你可能需要根據(jù)自己的系統(tǒng)將_rt0_amd64_darwin改成_rt0_amd64_linux或者別的。在gdb中先點(diǎn)r,回車,然后點(diǎn)c,回車,接著一路回車。
別著急,只是讓你有一個(gè)直觀的感受一下Go程序從系統(tǒng)初始化直到退出必經(jīng)的流程。下面讓我們正式開(kāi)始吧!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: