Yamanekazuma / SeqMakeDebugger

0 stars 0 forks source link

[BUG] 実行時のRuntime Library Error #12

Open Yamanekazuma opened 2 months ago

Yamanekazuma commented 2 months ago

デバッグビルド時、ときおり下記のようなランタイムエラーが表示される。

スクリーンショット 2024-06-13 032612

Yamanekazuma commented 2 months ago

Debuggerクラスのコンストラクタで発生している模様。

Yamanekazuma commented 2 months ago

下記のようなコンパイラ警告が出ていることが関係している?

[build] [41/53] Building CXX object deps/pe-parse/pe-parser-library/CMakeFiles/pe-parse.dir/src/parse.cpp.obj
[build] C:/Users/yamane/source/repos/SeqMakeDebugger/deps/pe-parse/pe-parser-library/src/parse.cpp:682:37: warning: offset of on non-standard-layout type 'std::remove_reference<decltype(*rde)>::type' (aka 'peparse::resource_dir_entry') [-Winvalid-offsetof]
[build]   682 |     if (!readDword(sectionData, o + offsetof(__typeof__(*rde), ID), rde->ID)) {
[build]       |                                     ^                          ~~
[build] C:\Program Files\LLVM\lib\clang\18\include\__stddef_offsetof.h:16:24: note: expanded from macro 'offsetof'
[build]    16 | #define offsetof(t, d) __builtin_offsetof(t, d)
[build]       |                        ^                     ~
[build] C:/Users/yamane/source/repos/SeqMakeDebugger/deps/pe-parse/pe-parser-library/src/parse.cpp:691:30: warning: offset of on non-standard-layout type 'std::remove_reference<decltype(*rde)>::type' (aka 'peparse::resource_dir_entry') [-Winvalid-offsetof]
[build]   691 |             sectionData, o + offsetof(__typeof__(*rde), RVA), rde->RVA)) {
[build]       |                              ^                          ~~~
[build] C:\Program Files\LLVM\lib\clang\18\include\__stddef_offsetof.h:16:24: note: expanded from macro 'offsetof'
[build]    16 | #define offsetof(t, d) __builtin_offsetof(t, d)
[build]       |                        ^                     ~
[build] 2 warnings generated.

offsetofをstandard-layoutではないクラス(peparse::resource_dir_entry)に適応しているために発生している。 根本原因としては、通常standard-layoutであるクラスのstd::stringが、デバッグ時はstandard-layoutではないために生じている。

→ これが本当に原因であれば、デバッグ時にしか起こらないため、影響は軽微?