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
再コンパイル不要._core_dump_さえ吐ければ_gdb_デバッグできます.pdf
Search
Tomoya-Suzuki
December 12, 2020
Programming
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
再コンパイル不要._core_dump_さえ吐ければ_gdb_デバッグできます.pdf
PHP Conference 2020 のLTで発表した資料です。
Tomoya-Suzuki
December 12, 2020
Transcript
22 slides
再コンパイル不要! 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
More Decks by Tomoya-Suzuki
See All by Tomoya-Suzuki
安易に前職同僚飲み会に行ったら 売り上げのほぼないスタートアップに入社してた話
yamotuki
0
1.5k
Repositoryパターンを維持しながらN+1問題を起こさないようにする方法論について
yamotuki
2
1.7k
プログラマ三大美徳を実現するデプロイフローを目指して
yamotuki
0
1.5k
Other Decks in Programming
See All in Programming
AI Augmentation Techniques with Liberty
ivargrimstad
1
450
はじめてのPLATEAU
nokonoko1203
1
640
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
310
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.5k
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
Next.js: The final boss of Web Performance
guaca
0
400
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
9.1k
Spec-driven Development with AI
simas
PRO
0
2.3k
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
560
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
170
LLM 101: Exploring LLMs, Starting with Tokens.
dalinaum
0
100
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
Ethics towards AI in product and experience design
skipperchong
2
460
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
480
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
KATA
mclloyd
PRO
35
16k
The browser strikes back
jonoalderson
0
1.9k
First, design no harm
axbom
PRO
2
1.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Navigating Weather and Climate Data
rabernat
0
590
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k