Visual Stdio CodeでC++をデバッグする際にSTLの値がincomplete typeとなって参照できない。

[環境]
$ uname -a
Linux salty-VirtualBox 5.4.0-71-generic #79~18.04.1-Ubuntu SMP Thu Mar 25 05:45:39 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ clang++ -v
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0
Candidate multilib: .;@m64
Selected multilib: .;@m64

Visual Stdio Code
バージョン 1.55.s
[解決方法]
以下の2つが必要です。
(1) コンパイルするときのオプションに「-D_GLIBCXX_DEBUG」を追加する
			"linux": {
				"MIMode": "gdb",
				"setupCommands": [
						{ "text": "-enable-pretty-printing", "description": "enable pretty printing", "ignoreFailures": true },
						{ "text": "handle SIGPIPE nostop noprint pass", "description": "ignore SIGPIPE", "ignoreFailures": true }  
				]
			},




/proc/sys/net/netfilter/nf_conntrackのレコードが着々と増える

/proc/sys/net/netfilter/nf_conntrackのレコードが着々と増える事象が発生しました。
結論から書くと、「conntrack -F」でconntrackテーブル(でいいのかな…)をflushすることで回復しました。

[状況]
Screenshot_11
Screenshot_13


[対処]
実施した内容は以下のとおりです。

現在のnf_conntrackのレコード数を確認
$ cat /proc/sys/net/netfilter/nf_conntrack_count
1263

現在のnf_conntrackのレコード数を1秒ごとに確認
$ watch cat /proc/sys/net/netfilter/nf_conntrack_count

nf_conntrackの最大数を確認
$ cat /proc/sys/net/netfilter/nf_conntrack_max
262144

firewalldが悪さをしている可能性を考えてrestartするも変化なし
# systemctl restart firewalld

nftablesが悪さをしている可能性を考えてrestartするも変化なし
# systemctl restart nftables.service

conntrackテーブル(でいいのかな…)をflushしてレコードが着々と増えないことを確認
# conntrack -F

「yum module install php:remi-8.0」をansibleで書く

CentOS8にphp:remi-8.0をインストールするコマンドは以下のとおりです。
# sudo rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-8.rpm
# sudo rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi
# sudo yum config-manager --set-enabled remi
# sudo yum module install php:remi-8.0
これをansibleで書くと以下のようになります。
- name: phpのインストール
  dnf:
    name: "@php:remi-8.0"
    enablerepo: remi
    state: present
php:remi-8.0の前の@については、ansible.builtin.dnf – Manages packages with the dnf package managerのExamplesの「Install a modularity appstream with defined stream and profile」を参照。

Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

/usr/bin/certbot renew
でLet's Encryptの証明書を更新しようとしたところ以下のエラーが発生して証明書が更新できませんでした。
Failed to renew certificate erogamescape.dyndns.org with error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.
ErogameScapeは
erogamescape.dyndns.org
erogamescape.org
の2つでアクセスできるようにしています。
virtual host の設定は443番ポートについては設定しているのですが、80番ポートには設定していませんでした。
今までは特に問題なく証明書が更新できていたので、何かがかわったのだと思います。
以下のように80番ポートにもVirtualHostを設定して証明書の更新ができました。
<VirtualHost *:80>
    ServerName erogamescape.org:80
</VirtualHost>
erogamescape.dyndns.org
erogamescape.org
の2つを設定する必要はなく、1つだけ設定することで証明書の更新ができました。
DocumentRootとServerAdminは設定する必要はありませんでした。

certbotコマンドを試す場合は
/usr/bin/certbot renew --dry-run
とオプションに--dry-runを追加するとステージング環境に接続するので、アクセス回数制限を気にせずに試すことができます。

PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/pear/PEAR/Config.php on line 2095

CentOS 8 Streamにおいて、yum module install php:remi-8.0した際、以下のエラーメッセージが発生しました。
結論から書くと、dnf update php-pearすることで、PHP Fatal errorがでなくなることを確認しました。

[状況]
CentOS Linux 8 - AppStreamのPHP7.3を運用中。
Remi's Modular repository for Enterprise Linux 8のPHP8.0に切り替え。

[手順]
# yum update epel-release
# yum module list php
# sudo rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-8.rpm
# sudo rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi
# sudo yum config-manager --set-enabled remi
# sudo yum module reset php
# sudo yum module list php
# sudo yum module install php:remi-8.0


[エラーメッセージの状況]
# sudo yum module install php:remi-8.0
Last metadata expiration check: 0:00:28 ago on Sun 14 Mar 2021 08:51:28 AM JST.
Dependencies resolved.
============================================================================================================================
 Package                            Architecture        Version                             Repository                 Size
============================================================================================================================
Upgrading:
 libzip                             x86_64              1.7.3-1.el8.remi                    remi-modular               66 k
 php-cli                            x86_64              8.0.3-1.el8.remi                    remi-modular              4.7 M
 php-common                         x86_64              8.0.3-1.el8.remi                    remi-modular              1.2 M
     replacing  php-json.x86_64 7.3.20-1.module_el8.2.0+498+4deef2f1
 php-devel                          x86_64              8.0.3-1.el8.remi                    remi-modular              1.2 M
 php-fpm                            x86_64              8.0.3-1.el8.remi                    remi-modular              1.6 M
 php-gd                             x86_64              8.0.3-1.el8.remi                    remi-modular              100 k
 php-mbstring                       x86_64              8.0.3-1.el8.remi                    remi-modular              523 k
 php-opcache                        x86_64              8.0.3-1.el8.remi                    remi-modular              762 k
 php-pdo                            x86_64              8.0.3-1.el8.remi                    remi-modular              153 k
 php-pecl-zip                       x86_64              1.19.2-1.el8.remi.8.0               remi-modular               71 k
 php-pgsql                          x86_64              8.0.3-1.el8.remi                    remi-modular              144 k
 php-process                        x86_64              8.0.3-1.el8.remi                    remi-modular              104 k
 php-xml                            x86_64              8.0.3-1.el8.remi                    remi-modular              236 k
Installing dependencies:
 libxml2-devel                      x86_64              2.9.7-8.el8                         appstream                 1.0 M
 oniguruma5php                      x86_64              6.9.6-1.el8.remi                    remi-safe                 208 k
 php-fedora-autoloader              noarch              1.0.1-2.el8.remi                    remi-modular               13 k
 xz-devel                           x86_64              5.2.4-3.el8                         baseos                     62 k
Installing weak dependencies:
 php-nikic-php-parser4              noarch              4.10.4-1.el8.remi                   remi                      164 k
Installing module profiles:
 php/common
Enabling module streams:
 php                                                    remi-8.0

Transaction Summary
============================================================================================================================
Install   5 Packages
Upgrade  13 Packages
(中略)
  Cleanup          : libzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64                                                32/32
  Running scriptlet: libzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64                                                32/32
PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /usr/share/pear/PEAR/Config.php on line 2095
(中略)

[PHP Fatal errorが出る原因]
/usr/share/pear/PEAR/Config.phpの2095行目は以下のようになっていました。
} elseif ($prepend{0} != '\\') {
PHP7.4で上記の書き方は廃止され、
} elseif ($prepend[0] != '\\') {
と書く必要があります。
修正すると、PHP Fatal errorが解消されることを確認しました。
pearのVerをあげれば解消されるとふんだので、以下のようにpearをupdateしました。
# pear list
PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /usr/share/pear/PEAR/Config.php on line 2095
# rpm -qa | grep pear
php-pear-1.10.9-1.module_el8.2.0+314+53b99e08.noarch
# dnf update php-pear
Last metadata expiration check: 2:56:06 ago on Sun 14 Mar 2021 03:45:12 PM JST.
Dependencies resolved.
============================================================================================================================
 Package                  Architecture           Version                                 Repository                    Size
============================================================================================================================
Upgrading:
 php-pear                 noarch                 1:1.10.12-5.el8.remi                    remi-modular                 365 k

# pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.4.12  stable
Console_Getopt   1.4.3   stable
PEAR             1.10.12 stable
PEAR_Manpages    1.10.0  stable
Structures_Graph 1.1.1   stable
XML_Util         1.4.5   stable
pear listコマンドもPHP Fatal errorで実行できませんでしたが、php-pearを1:1.10.12-5.el8.remiにすることでPHP Fatal errorが解消いたしました。
記事検索