Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gunosy.go#3 debug
Search
y_matsuwitter
June 27, 2014
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gunosy.go#3 debug
debugパッケージの資料になります。
y_matsuwitter
June 27, 2014
More Decks by y_matsuwitter
See All by y_matsuwitter
LLMと共に進化するプロセスを目指して
ymatsuwitter
13
5.4k
Building Products in the LLM Era
ymatsuwitter
11
13k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
3.5k
経営・意思・エンジニアリング
ymatsuwitter
23
22k
LLM in 2023 and 2024
ymatsuwitter
8
6.4k
Turbulent Technological Changes and Career Strategies
ymatsuwitter
2
3.3k
LLM in toB Service and Its UX
ymatsuwitter
7
12k
Agent and small LLM validation
ymatsuwitter
7
3.1k
Information management for a culture of speed: The story of Notion and LayerX
ymatsuwitter
4
11k
Other Decks in Programming
See All in Programming
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.7k
ソフトウェアラスタライザ
fadis
1
790
typoなんかねぇよ
raspython3
0
670
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
110
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
220
Deep dive into the select statement (GopherCon UK)
jespino
0
170
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
680
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
3
1.1k
Featured
See All Featured
Docker and Python
trallard
47
4.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Visualization
eitanlees
152
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Navigating Team Friction
lara
192
16k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
A designer walks into a library…
pauljervisheath
211
25k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Transcript
EFCVH !Z@NBUTVXJUUFS
EFCVHʹ͍ͭͯ w HPMBOHͷόΠφϦϑΝΠϧͷEFCVHʹඞཁͳπʔ ϧ܈ w ΦϒδΣΫτϑΝΠϧͷύʔεͳͲͷૢ࡞Λߦ͏
ΦϒδΣΫτϑΝΠϧ w ཁHPCVJMEͰग़དྷ্͕Δ࣮ߦϑΝΠϧ w ϓϥοτϑΥʔϜ͝ͱʹ෦ͷ༷͕ҟͳΔ w (P֤ڥʹ߹Θͤͯ$SPTT$PNQJMFՄೳ
ҙ w .BDͰΫϩείϯύΠϧՄೳͳJOTUBMM͢Δͱ͖ CSFXJOTUBMMHPDSPTTDPNQJMFBMM ͰJOTUBMM͍ͯͩ͘͠͞
(PͰѻ͑Δ࣮ߦϑΥʔϚοτ w &-'ʜओʹ6OJYܥ w .BDI0ʜओʹ.BD049 w 1&ʜओʹ8JOEPXT w 1MBOʜ(PWΑΓαϙʔτɺ6OJYޙܧ
ڞ௨༷UZQF'JMF UZQF'JMF GVOD/FX'JMF SJP3FBEFS"U 'JMF FSSPS GVOD0QFO OBNFTUSJOH
'JMF FSSPS GVOD G 'JMF $MPTF FSSPS GVOD G 'JMF %8"3' EXBSG%BUB FSSPS GVOD G 'JMF %ZO4USJOH UBH%ZO5BH <>TUSJOH FSSPS GVOD G 'JMF *NQPSUFE-JCSBSJFT <>TUSJOH FSSPS GVOD G 'JMF *NQPSUFE4ZNCPMT <>*NQPSUFE4ZNCPM FSSPS GVOD G 'JMF 4FDUJPO OBNFTUSJOH 4FDUJPO GVOD G 'JMF 4FDUJPO#Z5ZQF UZQ4FDUJPO5ZQF 4FDUJPO GVOD G 'JMF 4ZNCPMT <>4ZNCPM FSSPS
EFCVHFMG w 6OJY͚࣮ߦϑΝΠϧ w ༷ͳͲ IUUQDBTQBSIB[ZNPPOKQ0QFO#4% BOOFYFMGIUNM
EFCVHNBDIP w .BDͷ࣮ߦϑΝΠϧܗࣜ w 0CKFDUJWF$ॻ͘ਓΑ͘ग़ձ͏ w όάͰ্ख͘ಡΊͳ͔ͬͨΓ͢Δʜ
EFCVHQF w 8JOEPXT͚࣮ߦϑΝΠϧܗࣜ
EFCVHQMBO w QMBO͚όΠφϦͷ3FBEFS w 1MBOͱɺࢄίϯϐϡʔςΟϯάΛࢦͨ͠ 6OJYWͷޙܧ04ʢΒ͍͠ʣ
EFCVHEXBSG w ܕใͳͲͷ༷ʑͳσόοάใΛؚΉΦϒδΣ ΫτϑΝΠϧ w ֤࣮ߦϑΝΠϧʹڞ௨ͯ͠อଘ͞Ε͍ͯΔ w &-'ͱ͍͏໊લʹର߅ͨ͠Β͍͠
ৄ͘͠ w EXBSG IUUQEXBSGTUEPSHEPDEXBSGQEG
EFCVHHPTZN w (PͷTZNCPM-JOFOVNCFSςʔϒϧͷ ΞΫηεΛఏڙ w ֤छ࣮ߦϑΝΠϧΛಡΈࠐΈɺγϯϘϧͱ-*/& ςʔϒϧΛ༻ҙ w ͦͷޙ5BCMFΦϒδΣΫτʹมɺղੳ
ͬͯΈΑ͏ w ίϯύΠϧࡁΈͷ࣮ߦϑΝΠϧ͔Βఆٛ͞ΕͯΔ શͯͷؔͱͦͷҾΛදࣔͯ͠ΈΑ͏
package main ! import ( "debug/elf" "debug/gosym" "fmt" "log" "os"
)
func parse(file string, f *elf.File) *gosym.Table { sec := f.Section(".gosymtab")
symdat, err := sec.Data() defer f.Close() if err != nil { log.Fatalf("reading %s gosymtab: %v", file, err) } pclndat, err := f.Section(".gopclntab").Data() if err != nil { log.Fatalf("reading %s gopclntab: %v", file, err) } ! pcln := gosym.NewLineTable(pclndat, f.Section(".text").Addr) tab, err := gosym.NewTable(symdat, pcln) if err != nil { log.Fatalf("parsing %s gosymtab: %v", file, err) } ! return tab } &-'ܗ͔ࣜΒ(P ͷγϯϘϧΛ୳͢ -JOFUBCMF Λ୳͢ HPTZN5BCMF Λ༻ҙ͢Δ
func main() { fn := os.Args[1] f, err := elf.Open(os.Args[1])
if err != nil { log.Fatal(err) } table := parse(fn, f) ! //func_ := table.LookupFunc("os.Open") ! for _, f := range table.Funcs { fmt.Println(f.Name) for _, p := range f.Params { fmt.Println("\t" + p.Name) } } } -PPLVQ'VOD Λࢀߟʹͨ͠ } ಛఆͷ'VOD Λ୳͢
࣮ߦ݁Ռൈਮ UFYU NBJOQBSTF NBJOdBOPO NBJOG NBJOpMF NBJONBJO NBJOJOJU UZQFIBTI<>JOUFSGBDF\^ NBJOQ
NBJOT NBJOI UZQFFR<>JOUFSGBDF\^ NBJOR NBJOQ NBJOT NBJOFR ࠓճ࡞ͨ͠ ؔ ҎԼ(Pͷ ඪ४͕ฒͿ
ࢀߟ w NFUIBO͞Μͷϒϩά w ͜ͷลͷιʔεΛಡΉͱ͍͍͔͠Εͳ͍ w IUUQHPMBOHPSHTSDQLHEFCVHHPTZN QDMOUBCHP w IUUQHPMBOHPSHTSDQLHEFCVHHPTZN
TZNUBCHP