0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MacでC++のデバック環境を構築

Posted at

前がき

Macのローカル環境でC++のデバック環境を構築しようとしたが、起動はできるもののvectorの配列の中身が見れなかったりCLionを使ったデバック方法がかなり少なかったためこの記事を書くことを決めました。

環境

  • MacOS Catallina 10.15.4
  • CLion 2020
  • Docker for mac

試したこと

  • visual studioを使ったデバック
  • gdbをソースからビルドしてローカル環境にいれ、Debuggerに指定してbuild
  • lldbを使ったデバック

などです。結論から言うと全部自分が想定した通りに動きませんでした。標準入力ができなかったりステップが実行できなかったりです。
※ちなみにWindows環境ですとすぐに動きました。

not in executable format: File format not recognized
こちらのエラーが解消できました。

実現できた方法

Windowsで実装した方法とは別にGDB Serverをローカル環境内で構築して通信したらできるのでは?と考えたやってみた結果うまくいきました。

下記手順を記載します。

1. DockerでGDBServerを構築

  • DockerFileは下記となります
FROM ubuntu:18.04                                                                                                                                                                                                                              

RUN apt update \
    && apt upgrade -y \
    && apt install -y \
    apt-utils build-essential clang cmake gdb gdbserver openssh-server rsync

# Taken from - https://docs.docker.com/engine/examples/running_ssh_service/#environment-variables
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

# 22 for ssh server. 7777 for gdb server.
EXPOSE 22 7777

# Create dev user with password 'dev'
RUN useradd -ms /bin/bash dev 
RUN echo 'dev:dev' | chpasswd

# Upon start, run ssh daemon
CMD ["/usr/sbin/sshd", "-D"]

コンテナを起動していることを確認したら、大丈夫です。

2. CLionの設定

Preferences-> toolchainsdで各設定をします。
スクリーンショット 2020-05-09 23.55.18.jpg

スクリーンショット 2020-05-09 23.55.26.jpg

3. CmakeListの読み込み直す

意外とハマりポイントでした。すでに cmake-build-debug がある人は一度削除して、もう一度読み込み直すようにした方がいいです。
スクリーンショット 2020-05-10 0.01.58.jpg

4.虫眼鏡を押して実行するだけ

スクリーンショット 2020-05-10 0.05.59.jpg

参考にした記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?