Skip to content

Commit 3b29757

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent ae415dd commit 3b29757

File tree

5 files changed

+8186
-8211
lines changed

5 files changed

+8186
-8211
lines changed

reference/debugging.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,12 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2024-09-18T09:15:54">
180-
2024年09月18日 09時15分54秒
179+
<span itemprop="datePublished" content="2024-09-19T13:47:18">
180+
2024年09月19日 13時47分18秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
184-
<span itemprop="name">Akira Takahashi</span>
184+
<span itemprop="name">raclamusi</span>
185185
</span>
186186
が更新
187187
</small></p>
@@ -265,7 +265,7 @@ <h2>この機能が必要になった背景・経緯</h2>
265265
</tr>
266266
<tr>
267267
<td>Boost.Testライブラリ</td>
268-
<td><code>debugger_break()</code>関数 (無条件ブレークポイント)<br /> <code>under_debugger()</code>関数 (出張っg実行中か判定)</td>
268+
<td><code>debugger_break()</code>関数 (無条件ブレークポイント)<br /> <code>under_debugger()</code>関数 (デバッガ実行中か判定)</td>
269269
</tr>
270270
<tr>
271271
<td>EASTLライブラリ</td>

rss.xml

Lines changed: 117 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,125 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<title>cpprefjp - C++日本語リファレンス</title>
44
<link href="https://cpprefjp.github.io" />
5-
<updated>2024-09-18T14:41:41.551737</updated>
6-
<id>cc0b59e3-7b51-43b7-b49b-34d3ec3a1786</id>
5+
<updated>2024-09-19T13:53:45.717588</updated>
6+
<id>d2379c90-01e7-4fb4-8ff8-a8ccdc48e85b</id>
77

88

9+
<entry>
10+
<title>debugging -- fix typo</title>
11+
<link href="https://cpprefjp.github.io/reference/debugging.html"/>
12+
<id>d9d9c67a6159d03bc09fd61e50d4b802a36aae64:reference/debugging.md</id>
13+
<updated>2024-09-19T22:47:18+09:00</updated>
14+
15+
<content type="html">&lt;div class=&#34;header&#34;&gt;&amp;lt;debugging&amp;gt;&lt;/div&gt;&lt;h1 itemprop=&#34;name&#34;&gt;&lt;span class=&#34;token&#34;&gt;debugging&lt;/span&gt;&lt;span class=&#34;cpp cpp26&#34; title=&#34;C++26で追加&#34;&gt;(C++26)&lt;/span&gt;&lt;/h1&gt;
16+
&lt;div itemprop=&#34;articleBody&#34;&gt;&lt;p&gt;&lt;code&gt;&amp;lt;debugging&amp;gt;&lt;/code&gt;ヘッダでは、プログラムのデバッグ実行をサポートする機能を提供する。&lt;/p&gt;
17+
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
18+
&lt;thead&gt;
19+
&lt;tr&gt;
20+
&lt;th&gt;名前&lt;/th&gt;
21+
&lt;th&gt;説明&lt;/th&gt;
22+
&lt;th&gt;対応バージョン&lt;/th&gt;
23+
&lt;/tr&gt;
24+
&lt;/thead&gt;
25+
&lt;tbody&gt;
26+
&lt;tr&gt;
27+
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;debugging/breakpoint.html&#34;&gt;breakpoint&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
28+
&lt;td&gt;ブレークポイントを設置する (functional)&lt;/td&gt;
29+
&lt;td&gt;C++26&lt;/td&gt;
30+
&lt;/tr&gt;
31+
&lt;tr&gt;
32+
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;debugging/breakpoint_if_debugging.html&#34;&gt;breakpoint_if_debugging&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
33+
&lt;td&gt;デバッガ実行時のみブレークポイントを設置する (functional)&lt;/td&gt;
34+
&lt;td&gt;C++26&lt;/td&gt;
35+
&lt;/tr&gt;
36+
&lt;tr&gt;
37+
&lt;td&gt;&lt;code&gt;&lt;a href=&#34;debugging/is_debugger_present.html&#34;&gt;is_debugger_present&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;
38+
&lt;td&gt;デバッガ実行中か判定する (functional)&lt;/td&gt;
39+
&lt;td&gt;C++26&lt;/td&gt;
40+
&lt;/tr&gt;
41+
&lt;/tbody&gt;
42+
&lt;/table&gt;
43+
&lt;h2&gt;この機能が必要になった背景・経緯&lt;/h2&gt;
44+
&lt;p&gt;開発プラットフォームによってデバッガやブレークポイントの機能は提供されているが、本ライブラリのようにプログラム中に明示的にブレークポイントを設置し、プログラムとデバッガを対話させることでデバッグ体験が向上することがある。&lt;/p&gt;
45+
&lt;p&gt;実装経験としては以下のようなものがあり、これらをこのライブラリで標準化した:&lt;/p&gt;
46+
&lt;table border=&#34;1&#34; bordercolor=&#34;#888&#34; style=&#34;border-collapse:collapse&#34;&gt;
47+
&lt;thead&gt;
48+
&lt;tr&gt;
49+
&lt;th&gt;開発環境&lt;/th&gt;
50+
&lt;th&gt;機能&lt;/th&gt;
51+
&lt;/tr&gt;
52+
&lt;/thead&gt;
53+
&lt;tbody&gt;
54+
&lt;tr&gt;
55+
&lt;td&gt;Microsoft C/C++ Optimizing Compiler&lt;/td&gt;
56+
&lt;td&gt;&lt;code&gt;__debugbreak()&lt;/code&gt;関数 (無条件ブレークポイント)&lt;/td&gt;
57+
&lt;/tr&gt;
58+
&lt;tr&gt;
59+
&lt;td&gt;Win32 API&lt;/td&gt;
60+
&lt;td&gt;&lt;code&gt;IsDebuggerPresent()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
61+
&lt;/tr&gt;
62+
&lt;tr&gt;
63+
&lt;td&gt;LLVM Clang&lt;/td&gt;
64+
&lt;td&gt;&lt;code&gt;__builtin_debugtrap()&lt;/code&gt;組み込み関数 (無条件ブレークポイント)&lt;/td&gt;
65+
&lt;/tr&gt;
66+
&lt;tr&gt;
67+
&lt;td&gt;arm Keil, ARM Compiler&lt;/td&gt;
68+
&lt;td&gt;&lt;code&gt;__breakpoint()&lt;/code&gt;関数 (無条件ブレークポイント)&lt;/td&gt;
69+
&lt;/tr&gt;
70+
&lt;tr&gt;
71+
&lt;td&gt;Portable Snippetsライブラリ&lt;/td&gt;
72+
&lt;td&gt;&lt;code&gt;psnip_trap()&lt;/code&gt;関数 (無条件ブレークポイント)&lt;/td&gt;
73+
&lt;/tr&gt;
74+
&lt;tr&gt;
75+
&lt;td&gt;Debug Breakライブラリ&lt;/td&gt;
76+
&lt;td&gt;&lt;code&gt;debug_break()&lt;/code&gt;関数 (無条件ブレークポイント)&lt;/td&gt;
77+
&lt;/tr&gt;
78+
&lt;tr&gt;
79+
&lt;td&gt;Boost.Testライブラリ&lt;/td&gt;
80+
&lt;td&gt;&lt;code&gt;debugger_break()&lt;/code&gt;関数 (無条件ブレークポイント)&lt;br /&gt; &lt;code&gt;under_debugger()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
81+
&lt;/tr&gt;
82+
&lt;tr&gt;
83+
&lt;td&gt;EASTLライブラリ&lt;/td&gt;
84+
&lt;td&gt;&lt;code&gt;EASTL_DEBUG_BREAK()&lt;/code&gt;マクロ (無条件ブレークポイント)&lt;/td&gt;
85+
&lt;/tr&gt;
86+
&lt;tr&gt;
87+
&lt;td&gt;Catch2ライブラリ&lt;/td&gt;
88+
&lt;td&gt;&lt;code&gt;CATCH_TRAP&lt;/code&gt;マクロ (無条件ブレークポイント)&lt;br /&gt; &lt;code&gt;CATCH_BREAK_INTO_DEBUGGER&lt;/code&gt;マクロ (条件付きブレークポイント)&lt;br /&gt; &lt;code&gt;isDebuggerActive()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
89+
&lt;/tr&gt;
90+
&lt;tr&gt;
91+
&lt;td&gt;JUCEライブラリ&lt;/td&gt;
92+
&lt;td&gt;&lt;code&gt;JUCE_BREAK_IN_DEBUGGER&lt;/code&gt;マクロ (無条件ブレークポイント)&lt;br /&gt; &lt;code&gt;juce_isRunningUnderDebugger()&lt;/code&gt;関数、&lt;code&gt;Process::isRunningUnderDebugger()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
93+
&lt;/tr&gt;
94+
&lt;tr&gt;
95+
&lt;td&gt;ImGuiライブラリ&lt;/td&gt;
96+
&lt;td&gt;&lt;code&gt;IM_DEBUG_BREAK()&lt;/code&gt;マクロ (無条件ブレークポイント)&lt;/td&gt;
97+
&lt;/tr&gt;
98+
&lt;tr&gt;
99+
&lt;td&gt;AWS C SDK&lt;/td&gt;
100+
&lt;td&gt;&lt;code&gt;aws_debug_break()&lt;/code&gt;関数 (条件付きブレークポイント)&lt;br /&gt; &lt;code&gt;aws_is_debugger_present()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
101+
&lt;/tr&gt;
102+
&lt;tr&gt;
103+
&lt;td&gt;UnrealEngine&lt;/td&gt;
104+
&lt;td&gt;&lt;code&gt;UE_DEBUG_BREAK&lt;/code&gt;マクロ (条件付きブレークポイント)&lt;br /&gt; &lt;code&gt;IsDebuggerPresent()&lt;/code&gt;関数 (デバッガ実行中か判定)&lt;/td&gt;
105+
&lt;/tr&gt;
106+
&lt;/tbody&gt;
107+
&lt;/table&gt;
108+
&lt;h2&gt;バージョン&lt;/h2&gt;
109+
&lt;h3&gt;言語&lt;/h3&gt;
110+
&lt;ul&gt;
111+
&lt;li&gt;C++26&lt;/li&gt;
112+
&lt;/ul&gt;
113+
&lt;h2&gt;参照&lt;/h2&gt;
114+
&lt;ul&gt;
115+
&lt;li&gt;&lt;a href=&#34;https://open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2546r5.html&#34; target=&#34;_blank&#34;&gt;P2546R5 Debugging Support&lt;/a&gt;&lt;/li&gt;
116+
&lt;/ul&gt;&lt;/div&gt;</content>
117+
118+
<author>
119+
<name>raclamusi</name>
120+
<email>[email protected]</email>
121+
</author>
122+
</entry>
123+
9124
<entry>
10125
<title>breakpoint -- &lt;debugging&gt; : ユースケースを記載 #1232</title>
11126
<link href="https://cpprefjp.github.io/reference/debugging/breakpoint.html"/>
@@ -397,144 +512,4 @@ index 645a59e5c..fe1c0188b 100644
397512
</author>
398513
</entry>
399514

400-
<entry>
401-
<title>breakpoint -- &lt;debugging&gt; : コード例が間違ってたのを修正 #1232</title>
402-
<link href="https://cpprefjp.github.io/reference/debugging/breakpoint.html"/>
403-
<id>a4346b7d7da2873721b6dce28c8ce9811a6da22d:reference/debugging/breakpoint.md</id>
404-
<updated>2024-09-18T13:13:25+09:00</updated>
405-
406-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/debugging/breakpoint.md b/reference/debugging/breakpoint.md
407-
index eca120ffc..62f370aef 100644
408-
--- a/reference/debugging/breakpoint.md
409-
+++ b/reference/debugging/breakpoint.md
410-
@@ -47,11 +47,12 @@ double g(double a, double b) {
411-
412-
double f(double a, double b) {
413-
double ret = g(a, b);
414-
- if (std::isnan(ret)) {
415-
- // 演算結果でNaNが発生したらブレークし、
416-
+ if (std::isnan(ret) || std::isinf(ret)) {
417-
+ // 演算結果でNaNかinfが発生したらブレークし、
418-
// デバッガでパラメータ (ローカル変数) などを確認する
419-
std::breakpoint();
420-
}
421-
+ return ret;
422-
}
423-
424-
int main() {
425-
@@ -61,9 +62,11 @@ int main() {
426-
```
427-
* std::breakpoint[color ff0000]
428-
* std::isnan[link /reference/cmath/isnan.md]
429-
+* std::isinf[link /reference/cmath/isinf.md]
430-
431-
-### 出力
432-
+### 出力例
433-
```
434-
+inf
435-
```
436-
437-
438-
&lt;/code&gt;&lt;/pre&gt;</summary>
439-
440-
<author>
441-
<name>Akira Takahashi</name>
442-
<email>[email protected]</email>
443-
</author>
444-
</entry>
445-
446-
<entry>
447-
<title>breakpoint_if_debugging -- &lt;debugging&gt; : コード例が間違ってたのを修正 #1232</title>
448-
<link href="https://cpprefjp.github.io/reference/debugging/breakpoint_if_debugging.html"/>
449-
<id>a4346b7d7da2873721b6dce28c8ce9811a6da22d:reference/debugging/breakpoint_if_debugging.md</id>
450-
<updated>2024-09-18T13:13:25+09:00</updated>
451-
452-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/debugging/breakpoint_if_debugging.md b/reference/debugging/breakpoint_if_debugging.md
453-
index 742e93cb9..482559fa2 100644
454-
--- a/reference/debugging/breakpoint_if_debugging.md
455-
+++ b/reference/debugging/breakpoint_if_debugging.md
456-
@@ -49,11 +49,12 @@ double g(double a, double b) {
457-
458-
double f(double a, double b) {
459-
double ret = g(a, b);
460-
- if (std::isnan(ret)) {
461-
- // 演算結果でNaNが発生したらブレークし、
462-
+ if (std::isnan(ret) || std::isinf(ret)) {
463-
+ // 演算結果でNaNかinfが発生したらブレークし、
464-
// デバッガでパラメータ (ローカル変数) などを確認する
465-
std::breakpoint_if_debugging();
466-
}
467-
+ return ret;
468-
}
469-
470-
int main() {
471-
@@ -63,9 +64,11 @@ int main() {
472-
```
473-
* std::breakpoint_if_debugging[color ff0000]
474-
* std::isnan[link /reference/cmath/isnan.md]
475-
+* std::isinf[link /reference/cmath/isinf.md]
476-
477-
-### 出力
478-
+### 出力例
479-
```
480-
+inf
481-
```
482-
483-
484-
&lt;/code&gt;&lt;/pre&gt;</summary>
485-
486-
<author>
487-
<name>Akira Takahashi</name>
488-
<email>[email protected]</email>
489-
</author>
490-
</entry>
491-
492-
<entry>
493-
<title>is_debugger_present -- &lt;debugging&gt; : コード例が間違ってたのを修正 #1232</title>
494-
<link href="https://cpprefjp.github.io/reference/debugging/is_debugger_present.html"/>
495-
<id>a4346b7d7da2873721b6dce28c8ce9811a6da22d:reference/debugging/is_debugger_present.md</id>
496-
<updated>2024-09-18T13:13:25+09:00</updated>
497-
498-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/debugging/is_debugger_present.md b/reference/debugging/is_debugger_present.md
499-
index 4cabd44f4..721f4f41e 100644
500-
--- a/reference/debugging/is_debugger_present.md
501-
+++ b/reference/debugging/is_debugger_present.md
502-
@@ -55,13 +55,14 @@ double g(double a, double b) {
503-
504-
double f(double a, double b) {
505-
double ret = g(a, b);
506-
- if (std::isnan(ret)) {
507-
- // 演算結果でNaNが発生したらブレークし、
508-
+ if (std::isnan(ret) || std::isinf(ret)) {
509-
+ // 演算結果でNaNかinfが発生したらブレークし、
510-
// デバッガでパラメータ (ローカル変数) などを確認する
511-
if (std::is_debugger_present()) {
512-
std::breakpoint();
513-
}
514-
}
515-
+ return ret;
516-
}
517-
518-
int main() {
519-
@@ -72,9 +73,11 @@ int main() {
520-
* std::is_debugger_present[color ff0000]
521-
* std::breakpoint[link breakpoint.md]
522-
* std::isnan[link /reference/cmath/isnan.md]
523-
+* std::isinf[link /reference/cmath/isinf.md]
524-
525-
-### 出力
526-
+### 出力例
527-
```
528-
+inf
529-
```
530-
531-
532-
&lt;/code&gt;&lt;/pre&gt;</summary>
533-
534-
<author>
535-
<name>Akira Takahashi</name>
536-
<email>[email protected]</email>
537-
</author>
538-
</entry>
539-
540515
</feed>

0 commit comments

Comments
 (0)