Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
14
5.6k
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
残高管理から台帳サービスへの進化
artoy
0
150
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
540
APNsからLive Activityを開始する話
yumnumm
0
150
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
580
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
150
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
630
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
350
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
14
6.7k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
BBQ
matthewcrist
89
10k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
HDC tutorial
michielstock
2
940
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
Tell your own story through comics
letsgokoyo
1
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
A better future with KSS
kneath
240
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
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