タグ

c++とgccに関するMonMonMonのブックマーク (7)

  • gcc、g++を使ったルネサスRXマイコン開発 - Qiita

    Renesas RX Microcontroller 概要 これはルネサス RX マイコンと、そのコンパイラである rx-elf-gcc,g++ によるプログラム開発環境です。 ※内容は、Github RX に掲載した内容を抜き出した物です。 2020-06-30: 今後に備えて、binutils-2.34、gcc-7.5.0、newlib-2.4.0 に切り替えました。 現在は、ルネサス社が独自に実装した「Renesas GNU RX gcc 8.3.0」が利用出来ます。 Windows 版とLinux 版があるようですが、ソースコードが入手出来るので、OS-X でも利用出来ると思います。 純正コンパイラを買う価値はあるのか? CC-RX の場合、1ライセンスは、19万8000円します。 IDE を使った統合環境で動かすと、デバッグ機能が充実します。 2020年になった現在、C++11

    gcc、g++を使ったルネサスRXマイコン開発 - Qiita
  • [Linux][C/C++]関数の復帰アドレス値と呼び出し元の関数名を取得する方法 - Qiita

    TL;DR いろんな箇所から呼ばれる関数のデバッグをしたいので、呼び出し元の関数名を取得したい。 __builtin_return_address(0) と dladdr を使うと良さそう。 実装サンプル #include <stdio.h> #define __USE_GNU #include <dlfcn.h> void hoge() { Dl_info info; dladdr(__builtin_return_address(0), &info); printf("[%s] parent func name => %p [%s]\n", __func__, __builtin_return_address(0), info.dli_sname); } void foo() { hoge(); Dl_info info; dladdr(__builtin_return_address

    [Linux][C/C++]関数の復帰アドレス値と呼び出し元の関数名を取得する方法 - Qiita
  • CentOSに新しいバージョンのGCC/G++(4.8/4.9)をインストールする - TASK NOTES

    CentOS に Software Collections を使用して新しいバージョンの GCC/G++ コンパイラをインストールする方法です。 標準インストールされるGCC/G++のバージョン yumの標準リポジトリでインストールされるgcc/gcc-c++はバージョンが古いです。 # yum install gcc gcc-c++ # gcc -v gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) # g++ -v gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) このままでは C++11/14 に対応してないため、一部のプログラムがコンパイルできないという状況にもなりえます。そのため、Software Collections の Developer Toolset を使用して新

    CentOSに新しいバージョンのGCC/G++(4.8/4.9)をインストールする - TASK NOTES
  • gccで Wall & Wextra を使っても有効にならない警告 - Qiita

    gccで-Wall -Wextraを付けてもなお有効化されない警告オプションがあるそうなので、ドキュメントを読んでその効能を簡単に調べた。 なお、これらのオプションの中にはfortran、Objective-C用のものもあるようだが、それらについては説明を省く。 検証環境: gcc (Rev3, Built by MSYS2 project) 5.2.0 (やや特異な環境なのでLinuxなどの一般的な環境とは状況が違うかもしれない) 参考: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html https://gcc.gnu.org/onlinedocs/gcc/Objective-C-and-Ob

    gccで Wall & Wextra を使っても有効にならない警告 - Qiita
  • 便利かもしれないGCC builtin - にゃははー

    これは恐らくC++ Advent Calendar 2014の15日目です。 古来[要出典]より人々はいかに例外を投げた奴をトレースするかに命をかけてきた[要出典]。 投げられた例外自体や、そのメッセージを確認することはできるが、一体誰がその例外を投げたかという情報は一切乗らないからだ。 いっそのことsegfaultでもしてくれたほうがデバッガでスタックトレースを出力できる。 ある人は考えるだろう。 template <typename Base> struct exception_info : Base { explicit exception_info(const Base &base, const char *file, int line) : Base(base), file(file), line(line) {} virtual ~exception_info() noexce

    便利かもしれないGCC builtin - にゃははー
  • What Are Your GCC Flags ? - xavier roche's homework

    Say What ? Your GCC build flags. Yes, this is actually an interesting question! I have been building code at the various places where I work for many years, on different architectures, and tweaking the build flags has always been an important task. I mean, you probably are too experimented to just use something like: gcc -c fubar.c -o fubar.o And you probably use -W -Wall, or additional flags, to

  • GDBでデバッグするなら-g3オプション - 2013-05-08 - ククログ

    RubyPythonなどのスクリプト言語では実行中に例外が発生するとバックトレースを出力してくれます。バックトレースがあるとどこで問題が発生したかがわかるためデバッグに便利です。一方、CやC++では不正なメモリアクセスをすると、バックトレースではなくcoreを残して1終了します2。デバッガーでcoreを解析するとバックトレースを確認できます。 このように、CやC++でデバッグするときにデバッガーはなくてはならない存在です。スクリプト言語にもデバッガーはありますが、デバッガーを使わなくてもデバッグできる範囲が広いため、CやC++をデバッグするときのほうがデバッガーのありがたさがわかります。 この記事では、広く使われているデバッガーであるGDBをもっと便利に使うためのGCCのコンパイルオプション-g3を紹介します。 サンプルプログラム まず、この記事で使うサンプルプログラムを示します。マクロ

    GDBでデバッグするなら-g3オプション - 2013-05-08 - ククログ
  • 1