質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

2681閲覧

macでC++のデバッグについて

ozil10

総合スコア36

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2015/12/23 10:08

こちらのサイトを参考にコンピュータ将棋を作成中です。
今回質問したいのは、C++のデバッグ方法です。理想はRailsでいうbinding.pryとかで処理を止めて変数の中身を見たいのです。

そこでコマンドラインからデバッグしたい衝動にかられていたこともあり、macに標準で備わっているというlldbを使ってこのサイトのchapter2をデバッグしてみました。以下打ち込んだコマンドです。

makefileでコンパイルしたあと、

lldb ./shogi b kyokumen.c:29 r

ブレイクポイントを設定しkyokumen.cの29行目で止めたかったのですが、、普通に./shogiコマンドを打ったときのように将棋プログラムが起動してしまい止まったかどうかがわかりません。

理想は以下のような形で止めたいです。

(lldb) r Process 93890 launched: '/Path/To/hoge' (x86_64) Process 93890 stopped * thread #1: tid = 0x53c0ae, 0x0000000100000f23 hoge`main(argc=1, argv=0x00007fff5fbff460) + 51 at hoge.c:6, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x0000000100000f23 hoge`main(argc=1, argv=0x00007fff5fbff460) + 51 at hoge.c:6 3 int main(int argc, char **argv) { 4 char *test = "This is a debug demo."; 5 char *name = "edo"; -> 6 int age = 20; 7 8 printf("Name: %s, Age: %d\n", name, age); 9 (lldb)

何か解決方法ございましたらご教示いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2015/12/23 13:11

なぜ、Xcodeを使わないのですか?
KoichiSugiyama

2015/12/23 14:50

質問者さんの以前の質問(https://teratail.com/questions/23022)と全く同じ内容なのですが、前の質問への回答に対して上手くできなかったということでしょうか。 だとしたらどういう点で上手くいかなかったかなどを具体的に書かないと、同様の回答しか集まらないと思います。
KoichiSugiyama

2015/12/23 14:50

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
ozil10

2015/12/24 12:46 編集

なるほど。確かにおっしゃる通りです。。もっと具体的に質問は書くべきでした。ご指摘いただきありがとうございます。
guest

回答1

0

自己解決

makefileの中身のファイルそれぞれに足しして-gオプションをつけるとうまくいきました。質問が雑で申し訳ないです。フィードバックありがとうございました。

投稿2015/12/26 01:53

ozil10

総合スコア36

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問