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
再コンパイル不要._core_dump_さえ吐ければ_gdb_デバッグできます.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tomoya-Suzuki
December 12, 2020
Programming
0
580
再コンパイル不要._core_dump_さえ吐ければ_gdb_デバッグできます.pdf
PHP Conference 2020 のLTで発表した資料です。
Tomoya-Suzuki
December 12, 2020
Tweet
Share
More Decks by Tomoya-Suzuki
See All by Tomoya-Suzuki
安易に前職同僚飲み会に行ったら 売り上げのほぼないスタートアップに入社してた話
yamotuki
0
1.4k
Repositoryパターンを維持しながらN+1問題を起こさないようにする方法論について
yamotuki
2
1.7k
プログラマ三大美徳を実現するデプロイフローを目指して
yamotuki
0
1.4k
Other Decks in Programming
See All in Programming
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
320
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
190
KagglerがMixSeekを触ってみた
morim
0
350
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
170
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
150
Claude Code Skill入門
mayahoney
0
450
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
280
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
120
20260315 AWSなんもわからん🥲
chiilog
2
180
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
290
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
190
Featured
See All Featured
Side Projects
sachag
455
43k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
910
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
For a Future-Friendly Web
brad_frost
183
10k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
140
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
Transcript
再コンパイル不要! core dump さえ吐ければ gdb デバッグできます 鈴木智也(@yamotuki)
2 事業売却と資金調達で次のステージへ 業界初の買い手の顔が見えるM&Aプラットフォーム
セグフォといえば core dump 覚えていってね 伝えたいこと
初めての人向け(セグフォとは) 説明 セグメンテーション違反はアクセスが許可されていないメモリ上の位置、もしくは許可さ れていない方法~~中略~~でメモリ上の位置にアクセスしようとするときに起こる (wikipedia 「セグメンテーション違反」より引用) 要するに メモリを触るプログラムがバグっていると起こる。プログラムが突然死ぬ。 PHPはよくテストされているのでPHPerが見ることは少ない。
とある日 私「なんか開発環境で Laravel の Artisan コマンドが通らない。出力1行。」 私「他に出力は?」 コンソール「ないです」
私「詰んでるじゃん」
けど、似た実装でコード沢山書かれてる。 撤退できない・・・
何か使えるものは・・・ 脳裏によぎる、「core dump 吐けばいいじゃん」の言葉。 そう。core dump さえ吐けばあとはなんとかなる。
core dump とは(ざっくり) プロセスが死んだ時のメモリの状態が入っているファイルのこと
core dump ってどう読み解くのだっけ? ?「エラーを吐いたバイナリ(PHP)を再ビルドして、core dump で状態復元して gdbで ステップずつ見ていくのだ」 参考: https://rat.cis.k.hosei.ac.jp/article/devel/debugongccgdb1.html
※gdb は昔からデバッグに使われている有名なツール
私「やりたくない」
気を取り直してまして
ちゃんと調べました
実は再ビルド不要だった 参考にした神のブログ: http://sarface2012.hatenablog.com/entry/20101027 これでOK。例えばこういう感じ
じゃあ core dump 吐くだけだね 設定ちょっと変えるだけ。 怖くないよ。 ※Amazon Linux v1 の場合。v2だとまた違うようです。
core dump 出た!
gdb に core dump 食わせる 死んだメソッドを教えてくれている!
さらに情報取得 そのまま gdb コマンドの対話状態になるので、where コマンドを使う。 どこを実行中だったかを出してくれる。
問題が特定できた memcached の igbinary シリアライザーが問題だと分かった。 確かに設定が入っている。 before ->
解決! igbinary を使用する必然性がなかったので設定変更で解決。 after ->
おしまい • セグフォ といえば core dump、覚えて行ってね! • 詳細は qiita に書いておきました
◦ https://qiita.com/yamotuki/items/4cec5359a3edec07bddf
WE ARE HIRING! M&Aクラウドでは 一緒に働く仲間を募集しています PR https://www.wantedly.com/companies/macloud