Open Yamanekazuma opened 2 months ago
Debugger
クラスのコンストラクタで発生している模様。
下記のようなコンパイラ警告が出ていることが関係している?
[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ではないために生じている。
→ これが本当に原因であれば、デバッグ時にしか起こらないため、影響は軽微?
デバッグビルド時、ときおり下記のようなランタイムエラーが表示される。