タグ

japaneseとdebugに関するmasterqのブックマーク (18)

  • crashコマンドの使い方 - hana_shinのLinux技術ブログ

    1 crashコマンドとは? 2 検証環境 3 インストール方法 4 crashコマンド起動方法 5 コマンド一覧、ヘルプを表示する方法(help) 5.1 コマンド一覧を表示する方法 5.2 コマンドのヘルプを表示する方法 6 logコマンドの使い方 6.1 引数無しで実行する方法 6.2 時刻を表示する方法(-T) 6.3 ログの重要度を表示する方法(-m) 7 setコマンドの使い方 7.1 プロセスコンテキストを表示する方法 7.2 プロセスコンテキストを切り替える方法(set PID) 7.3 表示画面のスクロールオフ・オンの切り替え方法(set scroll off/set scroll on) 8 rdコマンドの使い方 8.1 メモリ内容を16進数/10進数(-d)で表示する方法 8.2 メモリ内容を文字列として表示する方法(-a) 9 modコマンドの使い方 9.1 モジュ

    crashコマンドの使い方 - hana_shinのLinux技術ブログ
    masterq
    masterq 2023/04/12
    めっちゃ詳しい
  • 【Rails】もっと早く知りたかったデバッグ用gem 'better_errors','binding_of_caller' - Qiita

    Rails】もっと早く知りたかったデバッグ用gem 'better_errors','binding_of_caller' はじめに 先日伊藤さんのこちらの動画(↓)を見ました。 プログラミング初心者歓迎!「エラーが出ました。どうすればいいですか?」から卒業するための基と極意 - YouTube 「いや、なんでもっと早く見なかった!」と思うくらい具体的なデバッグ手法が諸々解説されています。 そこで出てきたgem better_errors&binding_of_callerの導入方法と見方について簡単にまとめます。 今まで puts デバッグ binding.pry rails serverのログ を使ってエラーと闘っていましたが、この2つのgemはもっと早く知りたかったです この記事が役に立つ方 エラーに苦しんでいるRails初心者 この記事のメリット デバッグの効率が上がる 環境

    【Rails】もっと早く知りたかったデバッグ用gem 'better_errors','binding_of_caller' - Qiita
  • traceback — Print or retrieve a stack traceback

    traceback — Print or retrieve a stack traceback¶ Source code: Lib/traceback.py This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a “wrapper” around the interpreter. The modul

    traceback — Print or retrieve a stack traceback
    masterq
    masterq 2022/04/08
    文字列でスタックトレースを得るには`repr(traceback.extract_stack())`
  • Pythonでスレッドのスタックトレースを出力したい - CLOVER🍀

    これは、なにをしたくて書いたもの? Pythonで、動作しているスレッドのスタックトレースを出力する方法は?ということで。 環境 今回の環境は、こちら。 $ python3 -V Python 3.8.10 使う標準ライブラリ 今回の目的は、このあたりを使えば良さそうです。 traceback --- スタックトレースの表示または取得 — Python 3.8.10 ドキュメント sys --- システムパラメータと関数 — Python 3.8.10 ドキュメント threading --- スレッドベースの並列処理 — Python 3.8.10 ドキュメント 以降、これらを使ってちょっと試していきたいと思います。 スタックトレースを出力するコードを埋め込む まずは、スタックトレースを出力したい処理自体の中に、スタックトレースを出力するコードを埋め込んでみます。 thread_dump

    Pythonでスレッドのスタックトレースを出力したい - CLOVER🍀
    masterq
    masterq 2022/04/08
    他のドキュメントだと例外が起きた時にしかスタックトレース取れないように読めたけど、これならどこでも取れる
  • gdbのDynamic Printfを使う - Qiita

    はじめに gdbのDynamic pinrtf機能を使うことで動的にprintfを挿入できます。 breakすることなくプログラムの変数 / 実行パス を確認できます。 使い方 QEMU / gdbLinux kernel の動きを確認するを例に説明します。 consoleAでQEMUを起動します。 TOP_LINUX=~/linux-3.13.0 TOP_BUSYBOX=~/busybox-1.26.2 qemu-system-x86_64 -s -nographic \ -kernel $TOP_LINUX/arch/x86/boot/bzImage \ -initrd $TOP_BUSYBOX/rootfs.img \ -append "root=/dev/ram rdinit=/sbin/init console=ttyS0"

    gdbのDynamic Printfを使う - Qiita
    masterq
    masterq 2021/10/22
    "gdbのDynamic pinrtf機能を使うことで動的にprintfを挿入できます。"
  • 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp

    実行中のシステムの挙動を詳細にトレースする仕組みは、特に「よくわからない問題」に遭遇している時に重要です。今回はLinux向けのトレーシングツールの命とも言えるeBPFを利用した各種ツールを紹介します。 eBPFに関する記事が今回以降、数回にわたって解説されています。あわせてご覧ください。 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する(今回の記事) 第690回 BCCでeBPFのコードを書いてみる 第692回 sysfsやbpftoolを用いたeBPFの活用 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成 第695回 入門BPF CO-RE eBPFとBPF Compiler Collection 改めて言うまでもなく、Linuxカーネルもしくはカーネル上で動いている各種タスクのパフォーマンスや挙動を調べなくてはならない

    第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する | gihyo.jp
    masterq
    masterq 2021/10/20
    BCC中のツールを分類してくれている
  • ねむいさんのぶろぐ | いろいろ試す49

    !告! DropBoxの仕様変更に伴いまして過去の記事の画像が 見えなくなっていた問題はようやく解消しました! 現在EDGEで正常に閲覧できるよう過去の記事を適宜修正中です。 ●OpenOCDでマルチコアデバッグするやり方 竹様よりコメントでお題をいただいたのでトリプルコア搭載のLPC4370ボード、 LPC-Link2を使って実践してみました。 まずねむいさんのOpenOCDバイナリの/tcl/targetlpc4370_lpclink2_spifi.cfgを 編集します。デフォルトはm4コアしか有効にしていませんがm0subを有効にします。 ①と②の部分が編集した部分です。 m0appは電源投入直後は寝ているので今回は省きます。 なお順番が重要でm4コアを必ず先頭に持ってきておきましょう。 まずOpenOCDを起動したらm4コアにアタッチします。insightでつなぎます。 insi

    ねむいさんのぶろぐ | いろいろ試す49
  • デバッガ

    これまで何度も使ってきたgdb、つまりデバッガだが、これがどのように動いているかを見ていこう。 "デバッガ" とはなんだろうか。 "デバッガ" というと、バグを取ってくれるようなツールに聞こえるが、みなさんご存知のとおり、デバッガはプログラマのかわりにバグを取ってくれるわけではない。 実際のデバッガの動作は実行中のプログラムの状態を見れるツール、つまり "プログラムの状態ビューワ" とでも言ったほうが、現実とあっているだろう。 個人的には'デバッガ"という名称は実態とあってない、とは思うが、この章では、慣習にしたがって、プログラムの状態を調査、変更するツールのことを"デバッガ"と呼び、 そのデバッガを使って実際に何かをすることを"デバッグ"と呼ぶ。 また、デバッグされるプログラムの対象を"デバッギ(debugee)"と呼ぶ。 この章では、まず、デバッガが必要とする基的な操作について説明し

  • 第674回 カーネルのクラッシュ情報を解析する | gihyo.jp

    第673回の「カーネルのクラッシュ情報を取得する」では、カーネルクラッシュ時に情報を収集する仕組みを有効化しました。得られた情報は活用しないと意味がありません。今回はその中身を解析する方法を紹介します。 デバッグパッケージのインストール 第673回では、意図的にシステムをクラッシュさせることで、dmesgとvmcoreを取得しました。カーネルが今際の際に次につながる情報を残してくれたのです。「⁠しかしながらあのクラッシュが最後のpanicだとは思えない。もし、同じカーネルが続けて使われるとしたら、あのpanicの同類が、また世界のどこかへ現れてくるかもしれない……」 最初に行うべきなのは、前回紹介したように問題発生時のdmesgを読むことです。これである程度、状況の絞り込みは行えますし、運が良ければ原因がわかることもあります。しかしながら、dmesgだけだと「問題が起きた場所」はわかっても

    第674回 カーネルのクラッシュ情報を解析する | gihyo.jp
  • Emacs Lisp デバッグ — ありえるえりあ

    elisp のデバッグ方法について以下の3つの方法を説明します. - printf デバッグ - backtrace - edebug ■■■ printf デバッグ elisp で printf デバッグを行なうには message 関数を使います.message 関数の結果は *Messages* バッファに出力されます. 例えば以下の<リスト1>のように使います. ---------------- <リスト1> message 関数を使った printf デバッグ (defun message-sample () (let (list) (dotimes (i 10) (push i list) (message "%s" list)))) ---------------- 実行中に目視したい場合は sit-for と message の組み合わせか y-or-n-p を使うのが良い

  • PHP: var_dump - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    masterq
    masterq 2021/03/05
    変数の中身を知りたくなったら使う。ただしクラスのメンバー変数の中身は見えないので適宜対応する必要がある。
  • 【PHP】debug_print_backtraceで関数名とファイル名だけ表示する

    masterq
    masterq 2021/03/04
    "debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);"
  • QEMUのgdbserver機能でNetBSD kernelをデバッグする - Qiita

    QEMUにはgdbserver1が内蔵されており、ホストのgdbからtcp越しにゲストOSのカーネルをデバッグすることができます。この記事は上のGIF動画のようにNetBSD kernelのデバッグを行うHowtoです。 (VMWareでも同じことができるらしいです。WindowsならVirtualBox+VBoxGDBでもできるらしいです。が、私は日常的にNetBSD仮想マシンを使っている訳では無いので、気軽に環境構築・撤去ができるQEMUが好きです。libvertでもできるらしいのでそのうちやってみようと思ってます。) 注意事項 ホストOSはLinux (Ubuntu 18.04), macOS (Mojave 10.14.3) で検証済みです。Windowsや他のOSでの動作報告お待ちしております! ゲストOSは NetBSD - 8.0-amd64 で検証済みです。 i386の場合

    QEMUのgdbserver機能でNetBSD kernelをデバッグする - Qiita
  • https://developers.google.com/web/tools/setup/workspace/setup-devtools

    Chrome でビルドする Chrome の仕組み、オリジン トライアルに参加して、あらゆる場所で Chrome を使って構築しましょう。

  • debugger - JavaScript | MDN

    JavaScript チュートリアル 初級編 JavaScript の基礎 JavaScript の第一歩 JavaScript の構成要素 JavaScript オブジェクト入門 JavaScript ガイド 入門編 文法とデータ型 制御フローとエラー処理 ループとイテレーター 関数 式と演算子 数と日付 テキスト処理 正規表現 インデックス付きコレクション キー付きコレクション オブジェクトを利用する Using classes プロミスの使用 JavaScript 型付き配列 イテレーターとジェネレーター メタプログラミング JavaScript モジュール 中級編 クライアントサイド JavaScript フレームワーク クライアントサイド Web API Language overview JavaScript のデータ構造 等値比較と同一性 プロパティの列挙可能性と所有権 クロ

    debugger - JavaScript | MDN
  • debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ

    この記事はRed Hat DeveloperのIntroducing debuginfod, the elfutils debuginfo serverを、許可をうけて翻訳したものです。debuginfodは現在活発に開発中のソフトウェアで、2020年1月時点では elfutils へのマージが完了し、Fedora 31には含まれましたがまだRHELには含まれていません。 :::By Aaron Merey October 14, 2019 ::: バグを避けることはできないので、開発者は Systemtap や GDB などのデバッグツールへ素早くかつ簡単にアクセスできる必要があります。これらのツールは典型的にはDWARF(Debugging With Attributed Record Formats)を含むdebuginfoやソースファイルに依存します。これらのリソースへのアクセスは

    debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
  • unameコマンドから始めるデバッグ&カーネルハック入門 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2019の1日目の記事です。 はじめに 環境 おことわり uname(1) uname(1)が出力する内容 strace(1) gdb(1) bpftrace systemtap Kernel Hack Livepatch おまけ RHEL 8.1 CentOS 8 まとめ はじめに 記事ではLinuxサーバのホスト名、Linuxカーネルのバージョン、cpuアーキテクチャなどのシステム情報を表示するuname(1)を利用してLinux環境でのデバッグとカーネルハックについて説明していきます。記事ではコマンドやツールの使い方の説明ではなくて、それらを使ってどのようにデバッグするのかというところを説明します。 環境 ディストリビューションにはFedora 31(x86_64)を利用します。動作環境はQEMUやlibvirt、Oracle

    unameコマンドから始めるデバッグ&カーネルハック入門 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • 第584回 SystemTapでカーネルの挙動を確認する | gihyo.jp

    カーネルを再構築することなくカーネルの動作を深く詳細に確認できると便利です。今回紹介するSystemTapを使うと、ちょっとしたスクリプト言語を書くだけで、カーネル上の特定の処理をフックし、必要な情報を収集・分析できます。 SystemTapがあるとうれしい理由 SystemTapは実行中のカーネルの処理をフックして、必要に応じて情報を収集し、出力するツールです。 カーネルのデバッグにおける代表的な手法と言えば「printk()の差し込み」です。printk()関連の関数を使えば多くの問題の状況を把握できますし、その情報がそのまま解決につながる例だってたくさんあります[1]⁠。 いわゆる「printk()デバッグ」は強力な手法ではあるものの、いくつかの弊害も存在します。 printk()を差し込むためにカーネルやモジュールをビルドし直さなくてはならない 環境に合わせたカーネルやモジュールの

    第584回 SystemTapでカーネルの挙動を確認する | gihyo.jp
    masterq
    masterq 2019/09/04
    "STPスクリプトとカーネルのデバッグ情報から,C言語のコードを生成して,それをカーネルモジュールとしてビルド・ロードし,その結果を標準出力や独自のログバッファなどに保存"
  • 1