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.7k
Building Products in the LLM Era
ymatsuwitter
11
14k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
3.6k
経営・意思・エンジニアリング
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.2k
Information management for a culture of speed: The story of Notion and LayerX
ymatsuwitter
4
11k
Other Decks in Programming
See All in Programming
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
160
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
550
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
280
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
620
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.8k
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.4k
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
300
オーケストレーション記述言語 Katari
yukikurage
0
240
AI-Powered Domain-Driven Design
ziobrando
0
410
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
Evolving SEO for Evolving Search Engines
ryanjones
0
360
Building AI with AI
inesmontani
PRO
1
1.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Mind Mapping
helmedeiros
1
430
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
370
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