結論 C++をgdbでデバッグする時(特にポリモーフィズム使ってる場合)は、下記の設定をするとわかりやすいです。 gdb manual 背景 C++でポリモーフィズムすると、デバッグ時に実際のクラスがぱっと見わからなくて困ることがあります。 例として、以下のようなプログラムを考えます。 Animalクラスを基底クラスとして、そこから継承したクラスをいくつか定義しています。 それらのインスタンスへのポインタをstd::vectorでまとめて、 Chorus関数にてポリモーフィズムを使ったMakeSound呼出をしています。 #include <iostream> #include <memory> #include <vector> class Animal { public: virtual ~Animal() {} virtual void MakeSound() const { std
プロセスID表示 runした後、 (gdb) info proc id を使う。 define値表示 gオプションでコンパイルすると定義内容が表示できないので、 (gdb) p FOOBAR No symbol "FOOBAR" in current context. (gdb) shell grep FOOBAR /usr/include/bar.h としていたが、-g3オプションだとprintで表示可能でしかもinfo macroでどこに定義されているのかがわかる。 2つの例 $ cat test.h /** * test.h * $Id$ */ #ifndef _TEST_H #define _TEST_H 1 #define TEST_STR "This is test" #endif /* _TEST_H */ $ cat test.c /** * test.c * $Id$ *
はじめに ESP32 にデバッガを繋ぐ方法を書きます。 今時の統合開発環境に慣れてしまって、ブレイクポイントを仕掛けたり、変数の値を読み取ったりできない開発環境にはもう戻れない体になってしまったので、何とかしてみましたw 必要なものとしては、ハードウェアでは FT232H、ソフトウェアは OpenOCD と GDB です。GDB はESP-IDF(toolchainの方かも)の中に含まれてます。 新たに購入するものは秋月の AE-FT232HL ¥1,200- (と配線少々)のみです! 参考資料は Debugging — ESP-IDF Programming Guide 他、ググりながら書いております。 前提条件 ESP32(ESP-WROOM-32)でLチカ (WindowsでESP-IDF使用) の環境構築が終わっていること ソフトウェアの準備 OpenOCD は、On-Chip D
自分用にgdbコマンドをメモ。別のサイトに載せていたのですが、サイトが消えたのでこちらに載せ直しました(^^; list ソースコードを表示。 sample.cの10行目あたりを表示する場合、以下のコマンドを実行します。 (gdb) list sample.c:10 5 #define LED3 0x40 6 7 void wait() 8 { 9 static int status; 10 static unsigned int t; 11 12 do{ 13 status = *DGA_CSR20 & TT0_BIT; 14 t = (*DGA_CSR13 & 0x00ffffff); print (p) 変数の値を表示。 statusという変数の値を表示する場合、以下のコマンドを実行します。 (gdb) p status $1 = 104857 (gdb) p/x status $2
はじめに mall0c動画見てますか?>挨拶 Twitterで「malloc動画」で検索かけると、眠れない夜に見ると良いとか、健康に良いとかいろいろ出てきて、健康に良い上にmallocのこともわかるなんて、もう見ない理由はないですね。 というわけで、今回はmallocにおけるmain_arenaとsbrkの振る舞いを追います。 mallocの動作を追いかける(mmap編) mallocの動作を追いかける(prev_size編) mallocの動作を追いかける(main_arenaとsbrk編) ← イマココ mallocの動作を追いかける(fastbins編) mallocの動作を追いかける(マルチスレッド編) mallocの動作を追いかける(環境変数編) main_arenaとsbrkの動作を追いかける gdbで追いかける mallocは、メモリをアリーナ(arena)という単位で管理し
LLつかってても「ばすえらーになるー」っていう状況ってたまにあるわけですが、LL しか普段つかわないゆとりは、ここでお手あげになってしまったりすることがままあります。 で、「ばすえらーになるんですが」ってときの最低限これだけはやってみたらどうか、という話。「えー、わたし gdb とかわかんないしー」とかいってる人でもこれぐらいならできるんじゃないかなーっと。 perl t/00_load.tというコマンドで segv するという場合、gdb をつかって % gdb --args perl t/00_load.tとうつ。 すると、以下のようにプロンプトがでるので、"run" とうつ。これでスクリプトがはしりはじめる。 % gdb --args perl t/00_load.t GNU gdb (GDB) 7.0-ubuntu Copyright (C) 2009 Free Software
When I run GDB against a program which loads a .so which is linked to pthreads, GDB reports error "Cannot find new threads: generic error". Note that executable that I run is not linked with pthreads. Any clues? $ gdb --args lua -lluarocks.require GNU gdb (GDB) 7.0-ubuntu Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are fre
ねこみみタイフーン¶ ねこみみタイフーンArticle現状構想nkmmtyp_memdumpnkmmtyp_regdumpnkmmtyp_slownkmmtyp_diff 設計作らなくても、もう既に存在しているものlivepatch関数コールトレーサー走行中のプロセスの標準出力を覗き見るLinux標準コマンド 中断中 Article¶ sonots:blog - ptraceとELFとLinuxレジスタ http://blog.livedoor.jp/sonots/archives/50135985.html プログラムモグモグ - ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! http://itchyny.hatenablog.com/entry/2017/07/31/090000 うさみみハリケーンのLinux版があればいいのに。。。ということで思い立った。
概要 Visual Studio GDB 拡張機能を利用すると、Linux 上のC++ のアプリをVisual Studio からリモートデバッグすることができます。 内容 Visual Studio でLinux 上のC++ アプリをリモートデバッグする方法を、以下の4つのセクションに分けて順に紹介します。 Visual Studio のバージョンは、Visual Studio 2015 Community かそれ以上が必要です。 1. Visual Studio GDB 拡張機能のインストール 2. Linux への証明書を使ったSSH 接続のための準備 3. Linux にコンパイラ、デバッガーをインストール 4. Visual Studio でLinux 上のC++ アプリをリモートデバッグ 1. Visual Studio GDB 拡張機能のインストール 1.1. Visual
Get notified in your email when a new post is published to this blog Earlier this year I wrote a post on how you could debug C++ code on Linux from Visual Studio. It was a bit cumbersome, but it was doable. Today we are releasing the Visual Studio GDB Debugger extension preview. This will enable debugging remote Linux targets including IoT devices. To use this extension, you need to have Visual St
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く