vscode-cpptools
vscode-cpptools copied to clipboard
Remove behavior where `compilerPath` overrides `compile_commands.json` entries, in favor of using an additional setting.
Environment
- OS and Version: Windows 10 22H2
- VS Code Version: 1.85.2
- C/C++ Extension Version: 1.18.5
Bug Summary and Steps to Reproduce
Bug Summary:
If both "compilerPath"
and "compileCommands"
are present in "c_cpp_properties.json"
, the former seems to take precedence during IntelliSense analysis. This results in the command line of the file present in compile_commands.json
(e.g. -mcpu
) to be ignored, leading to missing defines. Removing "compilerPath"
results in the command line from compile_commands.json
being taken into the account.
This behaviour goes directly against what c_cpp_properties.json reference documents:
If there is a matching entry in compile_commands.json for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of c_cpp_properties.json.
Additionally, the intended behaviour (compile_commands.json
overriding other options) was mentioned yesterday in another issue: https://github.com/microsoft/vscode-cpptools/issues/11880#issuecomment-1901003596.
Defining "compilerPath": "",
works as a workaround.
Observed behaviour:
"compilerPath"
takes precedence over "compileCommands"
for populating system/architecture specific defines.
Expected behaviour:
"compileCommands"
takes precedence over "compilerPath"
for populating system/architecture specific defines.
Configuration and Logs
c_cpp_properties.json
{
"configurations": [
{
"name": "main",
"intelliSenseMode": "gcc-arm",
"compilerPath": "H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE", // This causes issues
"compileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"configurationProvider": "ms-vscode.cpptools",
"cStandard": "gnu17",
"cppStandard": "c++17"
}
],
"version": 4
}
Language server logs ("compilerPath" absent)
Querying compiler's default target using command line: "H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -std=gnu17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in compile_commands.json file: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
Querying compiler for default C++ language standard using command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -x c++ -E -dM nul
Language server logs ("compilerPath" present)
Querying compiler's default target using command line: "H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=c++17 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE'
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=gnu17 -Wp,-v -E -dM -x c nul
LSP: Message ignored due to no registered handler: $/setTrace
Other Extensions
No response
Additional context
No response
At the most basic level, that doc is oversimplified. We should update it. The strategy for resolving the system includes is documented here: https://code.visualstudio.com/docs/cpp/customize-default-settings-cpp#_system-include-pathdefines-resolution-strategies
For compile_commands.json we allow for users to specify compilerPath
to pick a different compiler to query in the event that the compiler listed in compile_commands.json is not queryable.
However, if you are specifying a compiler in compilerPath
and it's throwing away important options from the compiler command line that are listed in compile_commands.json, we treat that as a bug in the extension.
However, if you are specifying a compiler in
compilerPath
and it's throwing away important options from the compiler command line that are listed in compile_commands.json, we treat that as a bug in the extension.
That matches my observations, yes. I included c_cpp_properties.json
but I forgot to include my current compile_commands.json
:
[
{
"command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-gcc.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\util\\pbm.o -c -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\demodemo -IH:\\dev\\flipper-zero\\demodemo H:\\dev\\flipper-zero\\demodemo\\util\\pbm.c",
"directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
"file": "H:\\dev\\flipper-zero\\demodemo\\util\\pbm.c",
"output": "H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\util\\pbm.o"
},
{
"command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-g++.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\demodemo.o -c -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\demodemo -IH:\\dev\\flipper-zero\\demodemo H:\\dev\\flipper-zero\\demodemo\\demodemo.cpp",
"directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
"file": "H:\\dev\\flipper-zero\\demodemo\\demodemo.cpp",
"output": "H:\\dev\\flipper-zero\\.ufbt\\build\\demodemo\\demodemo.o"
}
]
Based on this setup, I expect "compilerPath"
to be used for files not present in compiler_commands.json
, otherwise that JSON should take precedence. Instead, I am seeing that the JSON is completely ignored, as per the logs included above, and the result is that IntelliSense is lacking all the -mcpu=
-inferred defines.
It seems like we could add a setting to control the precedence...but the "pending" IntelliSense configuration changes would make this a non-issue.
It seems like we could add a setting to control the precedence...
Is the current behaviour not a defect then? If I understand the docs correctly, compile_commands.json
should have took precedence over "compilerPath"
in this instance.
@sean-mcmanus If this is intended behaviour, how do you suggest to move forward? Update project's c_cpp_properties.json
to have an empty compiler path and live with IntelliSense errors until the first compilation builds the commands JSON? I would consider this an acceptable tradeoff.
The current behavior of the compilerPath overriding the compiler in compile_commands.json
is expected and not a defect. We would need to add a setting to disable it (as @sean-mcmanus mentioned).
We also do not currently handle the -mcpu=
option. Are you getting incorrect results without it? We don't do anything special for different cpu types. We're currently limited to x86/x64/arm/arm64 support. If cortex "mostly" aligns with one of those, you might be able to set the intelliSenseMode
property in your configuration to force a specific architecture that gives you the best results.
We also do not currently handle the
-mcpu=
option. Are you getting incorrect results without it? We don't do anything special for different cpu types. We're currently limited to x86/x64/arm/arm64 support. If cortex "mostly" aligns with one of those, you might be able to set theintelliSenseMode
property in your configuration to force a specific architecture that gives you the best results.
I believe gcc handles it for you - with "compilerPath"
set to ""
, vscode invokes gcc with the parameters given, including -mcpu
- please see the bits of the language server logs I included in the initial post.
The current behavior of the compilerPath overriding the compiler in compile_commands.json is expected and not a defect. We would need to add a setting to disable it (as @sean-mcmanus mentioned).
Therefore, to sum my issue up:
-
compile_commands.json
is parsed as expected and I get the correct results for my specific ARM CPU. -
"compilerPath"'
needs to be set to""
inc_cpp_properties.json
for this feature to work correctly.
With those in mind, I would say it's 50/50 on the c_cpp_properties.json
configuration not realizing "compilerPath"
overrides compile_commands.json
, but also in my defense the docs really don't make that clear:
If there is a matching entry in compile_commands.json for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of c_cpp_properties.json.
By "the other fields", I understood that this includes 'compilerPath"
. Since it doesn't, in my opinion the docs should clarify this.
As for this issue - I agree that overriding the compiler can be considered not a defect, but it is also overriding compiler commands. I believe this part is wrong.
EDIT:
Just to make it entirely clear, let me visualise that -mcpu
truly is used:
-
"compilerPath"
set explicitly - parameters fromcompile_commands.json
are ignored, therefore IntelliSense doesn't know what CPU I am targetting: -
"compilerPath"
set to""
-compile_commands.json
is parsed by IntelliSense that queries GCC for supported defines, therefore IntelliSense knows exactly what CPU I am targetting:
Setting compilerPath
to ""
disables the compiler querying when used with includePath
and defines
(i.e. for source files not existing in compile_commands.json
). So it's often better to just delete compilerPath
from your configuration if you are not using it to override the compiler in compile_commands.json
.
I was just talking to @Colengms and he said that we shouldn't be filtering out the -mcpu
option from the query because it's not in our list of options to remove (because they mess up the query). So I'm not sure yet why it's not showing up in your query.
So it's often better to just delete
compilerPath
from your configuration if you are not using it to override the compiler incompile_commands.json
.
This results in IntelliSense trying to use cl.exe
:
[1/24/2024, 11:40:34 PM] For C source files, the cStandard was changed from "gnu17" to "c17" based on compiler args and querying compilerPath: "cl.exe"
even though intelliSenseMode
is set to gcc-arm
, as I have showed in the first post.
I was just talking to @Colengms and he said that we shouldn't be filtering out the
-mcpu
option from the query because it's not in our list of options to remove (because they mess up the query). So I'm not sure yet why it's not showing up in your query.
Do note that with compilerPath
set to a non-empty path, my language server logs don't mention compile_commands.json
at all - they do, however, mention it when that path is ""
.
Hi @CookiePLMonster .
Could you enable "C_Cpp.loggingLevel": "Debug"
and give us more of the output from the C/C++ output panel leading up to the issue? Could you try this with the latest (insiders) version of the extension? I believe what you provided shows compiler queries for the base/default compiler, but additional invocations of the compiler should be occurring for compile command lines in your compile_commands.json
. Unless there is an issue matching the filename in compile_commands.json
, one of those logged command lines should refer to your -mcpu=
argument and should indicate a reason why that compiler query has failed. When a compiler query fails for a compile_commands.json
entry, the base/default configuration is used as a fallback. A failed compiler query could explain why you're seeing the base configuration used instead of the compiler and argument from the compile_commands.json
entry.
Based on this setup, I expect "compilerPath" to be used for files not present in compiler_commands.json, otherwise that JSON should take precedence
I believe the following documentation is missing one detail:
If there is a matching entry in compile_commands.json for a file open in the editor, that command line will be used to configure IntelliSense for that file, instead of the other fields of c_cpp_properties.json.
Currently, if there is a "compilerPath" explicitly specified in your configuration (in c_cpp_properties.json
, or C_Cpp.default.compilerPath
), it will be used instead of the compiler specified in compile_commands.json
, when querying command lines from compile_commands.json
. The args from compile_commands.json
should still be used, so you should see still an attempted compiler query in your log that refers to -mcpu=
. This 'feature' was intended as a work-around for users working with generated compile_commands.json
files which leverage a script or unsupported compiler, allowing them to arbitrary redirect the compiler query. This behavior isn't ideal, as it breaks 'fallback' from compile_commands.json
to the base configuration, if that fallback configuration should use a different compiler path. That appears to be the core of the issue you're reporting. I'd like to use this issue to track moving this 'special' value for overring compile_commands.json
compiler paths, to a new setting instead the current behavior, which seems to break base configuration fallback.
Currently, if there is a "compilerPath" explicitly specified in your configuration (in
c_cpp_properties.json
, orC_Cpp.default.compilerPath
), it will be used instead of the compiler specified incompile_commands.json
, when querying command lines fromcompile_commands.json
. The args fromcompile_commands.json
should still be used, so you should see still an attempted compiler query in your log that refers to-mcpu=
.
Please do note that the compile_commands.json
I attached contains only the "command"
parameter, the toolchain does not output "arguments"
. Therefore, if "compilerPath"
overrides the entire command and not just the first part of it, that'll be an issue. However, I have been told that other tools (incl. alternative C/C++ extensions) handle such cases fine, and it is also documented as supported by this extension.
@Colengms As requested, I ran the test on the latest pre-release version of the extension (v1.19.2
) and with the Debug logging level, C/C++ output panel (not C/C++ Diagnostics):
Autogenerated compile_commands.json entry for the file I run this test with
{
"command": "H:\\dev\\flipper-zero\\.ufbt\\toolchain\\x86_64-windows\\bin\\arm-none-eabi-g++.EXE -o H:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo\\mode7_demo.o -c -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Werror -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -D_GNU_SOURCE -DFW_CFG_default -D\"M_MEMORY_FULL(x)=abort()\" -DSTM32WB -DSTM32WB55xx -DUSE_FULL_ASSERT -DUSE_FULL_LL_DRIVER -DMBEDTLS_CONFIG_FILE=\\\"mbedtls_cfg.h\\\" -DPB_ENABLE_MALLOC -DFW_ORIGIN_Official -DFURI_NDEBUG -DNDEBUG -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/furi -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/applications/services -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/furi_hal_include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/ble_glue -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/furi_hal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/targets/f7/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mlib -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/cmsis_core -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_cmsis/Include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/stm32wb_hal/Inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/mbedtls/include -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/toolbox -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/libusb_stm32/inc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/drivers -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_format -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/one_wire -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/ibutton -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/encoder_decoder -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/infrared/worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/subghz -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nfc -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/digital_signal -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/pulse_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/signal_reader -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/lfrfid -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/flipper_application -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/music_worker -IH:/dev/flipper-zero/.ufbt/current/sdk_headers/f7_sdk/lib/nanopb -DFAP_VERSION=\\\"0.1\\\" -IH:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo -IH:\\dev\\flipper-zero\\mode7_demo H:\\dev\\flipper-zero\\mode7_demo\\mode7_demo.cpp",
"directory": "H:\\dev\\flipper-zero\\.ufbt\\current\\scripts\\ufbt",
"file": "H:\\dev\\flipper-zero\\mode7_demo\\mode7_demo.cpp",
"output": "H:\\dev\\flipper-zero\\.ufbt\\build\\mode7_demo\\mode7_demo.o"
}
"compilerPath" set to a non-empty path - notice no mention of -mcpu or even compile_commands.json
loggingLevel: Debug
LSP: (received) cpptools/initialize (id: 1)
LSP: (invoked) cpptools/initialize (id: 1)
cpptools version (TypeScript): 1.19.2
cpptools version (native): 1.19.2.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 1)
LSP: (received) cpptools/didChangeCppProperties (id: 2)
LSP: (invoked) cpptools/didChangeCppProperties (id: 2)
Code browsing service initialized
Querying compiler for default C++ language standard using command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (received) cpptools/didChangeCppProperties (id: 4)
LSP: Message ignored due to no registered handler: $/setTrace
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=c++17 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE'
Compiler query command line: H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE -std=gnu17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in "compilerPath" property: 'H:/dev/flipper-zero/.ufbt/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.EXE'
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/MODE7_DEMO/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/C++/10.3.1/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/ will be indexed
LSP: Sending response (id: 2)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
Discovering files...
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/
LSP: Sending response (id: 3)
LSP: (invoked) cpptools/didChangeCppProperties (id: 4)
LSP: Sending response (id: 4)
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/MODE7_DEMO/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/C++/10.3.1/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/
Discovering files: 3068 file(s) processed
1 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
LSP: (received) cpptools/didChangeCppProperties (id: 5)
LSP: (invoked) cpptools/didChangeCppProperties (id: 5)
LSP: Sending response (id: 5)
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 6)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 6)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 7)
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: (received) cpptools/clearCustomConfigurations
LSP: $/cancelRequest (cpptools/getCodeActions, id: 6)
LSP: $/cancelRequest (cpptools/getCodeActions, id: 7)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 7)
LSP: $/cancelRequest (cpptools/getFoldingRanges, id: 8)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: Request canceled by server (<unknown/completed>, code: -32802, id: 8)
LSP: Sending response (id: 9)
LSP: (invoked) cpptools/clearCustomConfigurations
IntelliSense update scheduled and TU acquisition started for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
sending compilation args for H:\dev\flipper-zero\mode7_demo\mode7_demo.cpp
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\FURI
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\APPLICATIONS\SERVICES
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\FURI_HAL_INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\BLE_GLUE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\FURI_HAL
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MLIB
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\CMSIS_CORE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_CMSIS\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_HAL\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MBEDTLS\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\TOOLBOX
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LIBUSB_STM32\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DRIVERS
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_FORMAT
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\ONE_WIRE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\IBUTTON
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\ENCODER_DECODER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\WORKER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SUBGHZ
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NFC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DIGITAL_SIGNAL
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\PULSE_READER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SIGNAL_READER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LFRFID
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_APPLICATION
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MUSIC_WORKER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NANOPB
include: H:\DEV\FLIPPER-ZERO\.UFBT\BUILD\MODE7_DEMO
include: H:\DEV\FLIPPER-ZERO\MODE7_DEMO
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\ARM-NONE-EABI
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\BACKWARD
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE-FIXED
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE
define: __DBL_MIN_EXP__=(-1021)
define: __HQ_FBIT__=15
define: __UINT_LEAST16_MAX__=0xffff
define: __ARM_SIZEOF_WCHAR_T=4
define: __ATOMIC_ACQUIRE=2
define: __SFRACT_IBIT__=0
define: __FLT_MIN__=1.1754943508222875e-38F
define: __GCC_IEC_559_COMPLEX=0
define: __UFRACT_MAX__=0XFFFFP-16UR
define: __UINT_LEAST8_TYPE__=unsigned char
define: __DQ_FBIT__=63
define: __INTMAX_C(c)=c ## LL
define: __ULFRACT_FBIT__=32
define: __CHAR_BIT__=8
define: __USQ_IBIT__=0
define: __UINT8_MAX__=0xff
define: __ACCUM_FBIT__=15
define: __WINT_MAX__=0xffffffffU
define: __FLT32_MIN_EXP__=(-125)
define: __USFRACT_FBIT__=8
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffffffU
define: __ARM_ARCH_ISA_ARM=1
define: __WCHAR_MAX__=0xffffffffU
define: __LACCUM_IBIT__=32
define: __DBL_DENORM_MIN__=double(4.9406564584124654e-324L)
define: __GCC_ATOMIC_CHAR_LOCK_FREE=1
define: __GCC_IEC_559=0
define: __FLT32X_DECIMAL_DIG__=17
define: __FLT_EVAL_METHOD__=0
define: __TQ_IBIT__=0
define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK
define: __FLT64_DECIMAL_DIG__=17
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=1
define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
define: __SIG_ATOMIC_TYPE__=int
define: __DBL_MIN_10_EXP__=(-307)
define: __FINITE_MATH_ONLY__=0
define: __ARMEL__=1
define: __FLT32X_MAX_EXP__=1024
define: __LFRACT_IBIT__=0
define: __GNUC_PATCHLEVEL__=1
define: __FLT32_HAS_DENORM__=1
define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
define: __USA_FBIT__=16
define: __UINT_FAST8_MAX__=0xffffffffU
define: __ARM_ARCH_4T__=1
define: __INT8_C(c)=c
define: __INT_LEAST8_WIDTH__=8
define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
define: __SA_FBIT__=15
define: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=1.7976931348623157e+308L
define: __FRACT_MAX__=0X7FFFP-15R
define: __UFRACT_FBIT__=16
define: __UFRACT_MIN__=0.0UR
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=1
define: __UINTMAX_TYPE__=long long unsigned int
define: __LLFRACT_EPSILON__=0x1P-63LLR
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __CHAR_UNSIGNED__=1
define: __UINT32_MAX__=0xffffffffUL
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
define: __TA_IBIT__=64
define: __LDBL_MAX_EXP__=1024
define: __WINT_MIN__=0U
define: __INT_LEAST16_WIDTH__=16
define: __ULLFRACT_MIN__=0.0ULLR
define: __SCHAR_MAX__=0x7f
define: __WCHAR_MIN__=0U
define: __INT64_C(c)=c ## LL
define: __GCC_ATOMIC_POINTER_LOCK_FREE=1
define: __LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)
define: __SIZEOF_INT__=4
define: __FLT32X_MANT_DIG__=53
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=1
define: __USACCUM_IBIT__=8
define: __USER_LABEL_PREFIX__=
define: __FLT32_MAX_10_EXP__=38
define: __STDC_HOSTED__=1
define: __LFRACT_MIN__=(-0.5LR-0.5LR)
define: __HA_IBIT__=8
define: __DBL_DIG__=15
define: __FLT32_DIG__=6
define: __FLT_EPSILON__=1.1920928955078125e-7F
define: __APCS_32__=1
define: __GXX_WEAK__=1
define: __SHRT_WIDTH__=16
define: __USFRACT_IBIT__=0
define: __LDBL_MIN__=2.2250738585072014e-308L
define: __FRACT_MIN__=(-0.5R-0.5R)
define: __DA_IBIT__=32
define: __ARM_SIZEOF_MINIMAL_ENUM=1
define: __FLT32X_HAS_INFINITY__=1
define: __INT32_MAX__=0x7fffffffL
define: __UQQ_FBIT__=8
define: __INT_WIDTH__=32
define: __SIZEOF_LONG__=4
define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
define: __UINT16_C(c)=c
define: __DECIMAL_DIG__=17
define: __LFRACT_EPSILON__=0x1P-31LR
define: __FLT64_EPSILON__=2.2204460492503131e-16F64
define: __ULFRACT_MIN__=0.0ULR
define: __INT16_MAX__=0x7fff
define: __FLT64_MIN_EXP__=(-1021)
define: __LDBL_HAS_QUIET_NAN__=1
define: __ULACCUM_IBIT__=32
define: __FLT64_MANT_DIG__=53
define: __UACCUM_EPSILON__=0x1P-16UK
define: __GNUC__=10
define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK
define: __GXX_RTTI=1
define: __HQ_IBIT__=0
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=8
define: __SA_IBIT__=16
define: __BIGGEST_ALIGNMENT__=8
define: __STDC_UTF_16__=1
define: __FLT64_MAX_10_EXP__=308
define: __GNUC_STDC_INLINE__=1
define: __DQ_IBIT__=0
define: __FLT32_HAS_INFINITY__=1
define: __DBL_MAX__=double(1.7976931348623157e+308L)
define: __ULFRACT_IBIT__=0
define: __INT_FAST32_MAX__=0x7fffffff
define: __DBL_HAS_INFINITY__=1
define: __HAVE_SPECULATION_SAFE_VALUE=1
define: __ACCUM_IBIT__=16
define: __THUMB_INTERWORK__=1
define: __INTPTR_WIDTH__=32
define: __UINT_LEAST32_MAX__=0xffffffffUL
define: __ULLACCUM_IBIT__=32
define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
define: __FLT32X_HAS_DENORM__=1
define: __INT_FAST16_TYPE__=int
define: __STRICT_ANSI__=1
define: __LDBL_HAS_DENORM__=1
define: __cplusplus=201703L
define: __INT_LEAST32_MAX__=0x7fffffffL
define: __ARM_PCS=1
define: __ACCUM_MAX__=0X7FFFFFFFP-15K
define: __DEPRECATED=1
define: __DBL_MAX_EXP__=1024
define: __USACCUM_EPSILON__=0x1P-8UHK
define: __WCHAR_WIDTH__=32
define: __FLT32_MAX__=3.4028234663852886e+38F32
define: __GCC_ATOMIC_LONG_LOCK_FREE=1
define: __SFRACT_MAX__=0X7FP-7HR
define: __FRACT_IBIT__=0
define: __PTRDIFF_MAX__=0x7fffffff
define: __UACCUM_MIN__=0.0UK
define: __UACCUM_IBIT__=16
define: __FLT32_HAS_QUIET_NAN__=1
define: __GNUG__=10
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
define: __SIZEOF_WINT_T__=4
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __ULLACCUM_MIN__=0.0ULLK
define: __GXX_ABI_VERSION=1014
define: __UTA_FBIT__=64
define: __FLT_MIN_EXP__=(-125)
define: __UFRACT_IBIT__=0
define: __INT_FAST64_TYPE__=long long int
define: __FLT64_DENORM_MIN__=4.9406564584124654e-324F64
define: __DBL_MIN__=double(2.2250738585072014e-308L)
define: __SIZEOF_POINTER__=4
define: __SIZE_TYPE__=unsigned int
define: __DBL_HAS_QUIET_NAN__=1
define: __FLT32X_EPSILON__=2.2204460492503131e-16F32x
define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
define: __FRACT_FBIT__=15
define: __ULLACCUM_FBIT__=32
define: __GXX_TYPEINFO_EQUALITY_INLINE=0
define: __FLT64_MIN_10_EXP__=(-307)
define: __ULLFRACT_EPSILON__=0x1P-64ULLR
define: __USES_INITFINI__=1
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffff
define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
define: __SQ_IBIT__=0
define: __FLT32_MIN__=1.1754943508222875e-38F32
define: __UINT8_TYPE__=unsigned char
define: __UHA_FBIT__=8
define: __FLT_DIG__=6
define: __NO_INLINE__=1
define: __SFRACT_MIN__=(-0.5HR-0.5HR)
define: __UTQ_FBIT__=128
define: __DEC_EVAL_METHOD__=2
define: __FLT_MANT_DIG__=24
define: __LDBL_DECIMAL_DIG__=17
define: __VERSION__="10.3.1 20210824 (release)"
define: __UINT64_C(c)=c ## ULL
define: __ULLFRACT_FBIT__=64
define: __SOFTFP__=1
define: __FRACT_EPSILON__=0x1P-15R
define: __ULACCUM_MIN__=0.0ULK
define: __UDA_FBIT__=32
define: __LLACCUM_EPSILON__=0x1P-31LLK
define: __GCC_ATOMIC_INT_LOCK_FREE=1
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __USFRACT_MIN__=0.0UHR
define: __FLT32_MANT_DIG__=24
define: __UQQ_IBIT__=0
define: __USFRACT_MAX__=0XFFP-8UHR
define: __SCHAR_WIDTH__=8
define: __INT32_C(c)=c ## L
define: __ORDER_PDP_ENDIAN__=3412
define: __UHQ_FBIT__=16
define: __LLACCUM_FBIT__=31
define: __INT_FAST32_TYPE__=int
define: __UINT_LEAST16_TYPE__=short unsigned int
define: __DBL_HAS_DENORM__=1
define: __UINT64_MAX__=0xffffffffffffffffULL
define: __UDQ_FBIT__=64
define: __INT8_TYPE__=signed char
define: __ELF__=1
define: __GCC_ASM_FLAG_OUTPUTS__=1
define: __SACCUM_EPSILON__=0x1P-7HK
define: __ULFRACT_EPSILON__=0x1P-32ULR
define: __LLFRACT_FBIT__=63
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=short int
define: __LDBL_EPSILON__=2.2204460492503131e-16L
define: __UINTMAX_C(c)=c ## ULL
define: __SACCUM_MAX__=0X7FFFP-7HK
define: __FLT32X_MIN__=2.2250738585072014e-308F32x
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __UACCUM_FBIT__=16
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=1
define: __VFP_FP__=1
define: __SIZEOF_PTRDIFF_T__=4
define: __LACCUM_EPSILON__=0x1P-31LK
define: __LDBL_DIG__=15
define: __FLT32X_MIN_EXP__=(-1021)
define: __INT_FAST16_MAX__=0x7fffffff
define: __FLT64_DIG__=15
define: __UINT_FAST32_MAX__=0xffffffffU
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __SFRACT_EPSILON__=0x1P-7HR
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffL
define: __SIZEOF_SIZE_T__=4
define: __FLT_HAS_INFINITY__=1
define: __UINT_FAST16_TYPE__=unsigned int
define: __ARM_32BIT_STATE=1
define: __INT_FAST32_WIDTH__=32
define: __CHAR16_TYPE__=short unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __SIZE_WIDTH__=32
define: __INT_LEAST16_MAX__=0x7fff
define: __INT64_MAX__=0x7fffffffffffffffLL
define: __SACCUM_FBIT__=7
define: __FLT32_DENORM_MIN__=1.4012984643248171e-45F32
define: __SIG_ATOMIC_WIDTH__=32
define: __INT_LEAST64_TYPE__=long long int
define: __INT16_TYPE__=short int
define: __INT_LEAST8_TYPE__=signed char
define: __SQ_FBIT__=31
define: __ARM_ARCH_ISA_THUMB=1
define: __INT_FAST8_MAX__=0x7fffffff
define: __ARM_ARCH=4
define: __INTPTR_MAX__=0x7fffffff
define: __QQ_FBIT__=7
define: __UTA_IBIT__=64
define: __FLT64_HAS_QUIET_NAN__=1
define: __FLT32_MIN_10_EXP__=(-37)
define: __EXCEPTIONS=1
define: __PTRDIFF_WIDTH__=32
define: __LDBL_MANT_DIG__=53
define: __SFRACT_FBIT__=7
define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
define: __FLT64_HAS_INFINITY__=1
define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=8
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __INTPTR_TYPE__=int
define: __UINT16_TYPE__=short unsigned int
define: __WCHAR_TYPE__=unsigned int
define: __SIZEOF_FLOAT__=4
define: __TQ_FBIT__=127
define: __USQ_FBIT__=32
define: __UINTPTR_MAX__=0xffffffffU
define: __INT_FAST64_WIDTH__=64
define: __FLT32_DECIMAL_DIG__=9
define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_NORM_MAX__=3.4028234663852886e+38F
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __INT_MAX__=0x7fffffff
define: __LACCUM_FBIT__=31
define: __USACCUM_MIN__=0.0UHK
define: __UHA_IBIT__=8
define: __INT64_TYPE__=long long int
define: __FLT_MAX_EXP__=128
define: __UTQ_IBIT__=0
define: __DBL_MANT_DIG__=53
define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
define: __WINT_TYPE__=unsigned int
define: __UINT_LEAST32_TYPE__=long unsigned int
define: __SIZEOF_SHORT__=2
define: __ULLFRACT_IBIT__=0
define: __FLT32_NORM_MAX__=3.4028234663852886e+38F32
define: __LDBL_MIN_EXP__=(-1021)
define: __arm__=1
define: __FLT64_MAX__=1.7976931348623157e+308F64
define: __UDA_IBIT__=32
define: __WINT_WIDTH__=32
define: __INT_LEAST8_MAX__=0x7f
define: __INT_LEAST64_WIDTH__=64
define: __FLT32X_MAX_10_EXP__=308
define: __LFRACT_FBIT__=31
define: __WCHAR_UNSIGNED__=1
define: __LDBL_MAX_10_EXP__=308
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=double(2.2204460492503131e-16L)
define: __UINT8_C(c)=c
define: __FLT64_MAX_EXP__=1024
define: __INT_LEAST32_TYPE__=long int
define: __SIZEOF_WCHAR_T__=4
define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
define: __FLT64_NORM_MAX__=1.7976931348623157e+308F64
define: __INTMAX_MAX__=0x7fffffffffffffffLL
define: __INT_FAST8_TYPE__=int
define: __ULLACCUM_EPSILON__=0x1P-32ULLK
define: __USACCUM_MAX__=0XFFFFP-8UHK
define: __LDBL_HAS_INFINITY__=1
define: __UHQ_IBIT__=0
define: __ARM_FEATURE_COPROC=1
define: __LLACCUM_IBIT__=32
define: __FLT64_HAS_DENORM__=1
define: __FLT32_EPSILON__=1.1920928955078125e-7F32
define: __DBL_DECIMAL_DIG__=17
define: __STDC_UTF_32__=1
define: __INT_FAST8_WIDTH__=32
define: __FLT32X_MAX__=1.7976931348623157e+308F32x
define: __TA_FBIT__=63
define: __DBL_NORM_MAX__=double(1.7976931348623157e+308L)
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __UDQ_IBIT__=0
define: __INTMAX_WIDTH__=64
define: __ORDER_BIG_ENDIAN__=4321
define: __UINT64_TYPE__=long long unsigned int
define: __ACCUM_EPSILON__=0x1P-15K
define: __UINT32_C(c)=c ## UL
define: __FLT_DENORM_MIN__=1.4012984643248171e-45F
define: __LLFRACT_IBIT__=0
define: __INT8_MAX__=0x7f
define: __LONG_WIDTH__=32
define: __UINT_FAST32_TYPE__=unsigned int
define: __FLT32X_NORM_MAX__=1.7976931348623157e+308F32x
define: __CHAR32_TYPE__=long unsigned int
define: __FLT_MAX__=3.4028234663852886e+38F
define: __USACCUM_FBIT__=8
define: __INT32_TYPE__=long int
define: __SIZEOF_DOUBLE__=8
define: __FLT_MIN_10_EXP__=(-37)
define: __UFRACT_EPSILON__=0x1P-16UR
define: __FLT64_MIN__=2.2250738585072014e-308F64
define: __INT_LEAST32_WIDTH__=32
define: __INTMAX_TYPE__=long long int
define: __FLT32X_HAS_QUIET_NAN__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=3
define: __INT_FAST16_WIDTH__=32
define: __UINTMAX_MAX__=0xffffffffffffffffULL
define: __FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x
define: __HA_FBIT__=7
define: __DBL_MAX_10_EXP__=308
define: __LDBL_DENORM_MIN__=4.9406564584124654e-324L
define: __INT16_C(c)=c
define: __STDC__=1
define: __FLT32X_DIG__=15
define: __PTRDIFF_TYPE__=int
define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
define: __ATOMIC_SEQ_CST=5
define: __DA_FBIT__=31
define: __UINT32_TYPE__=long unsigned int
define: __FLT32X_MIN_10_EXP__=(-307)
define: __UINTPTR_TYPE__=unsigned int
define: __USA_IBIT__=16
define: __ARM_EABI__=1
define: __LDBL_MIN_10_EXP__=(-307)
define: __SIZEOF_LONG_LONG__=8
define: __ULACCUM_EPSILON__=0x1P-32ULK
define: __SACCUM_IBIT__=8
define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffffffU
define: __LDBL_NORM_MAX__=1.7976931348623157e+308L
define: __GCC_ATOMIC_SHORT_LOCK_FREE=1
define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
define: __UINT_FAST8_TYPE__=unsigned int
define: __USFRACT_EPSILON__=0x1P-8UHR
define: __ULACCUM_FBIT__=32
define: __QQ_IBIT__=0
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_RELEASE=3
define: _GNU_SOURCE
define: FW_CFG_default
define: M_MEMORY_FULL(x)=abort()
define: STM32WB
define: STM32WB55xx
define: USE_FULL_ASSERT
define: USE_FULL_LL_DRIVER
define: MBEDTLS_CONFIG_FILE="mbedtls_cfg.h"
define: PB_ENABLE_MALLOC
define: FW_ORIGIN_Official
define: FURI_NDEBUG
define: NDEBUG
define: FAP_VERSION="0.1"
other: --g++
other: --gnu_version=100301
stdver: c++17
intelliSenseMode: windows-gcc-arm
Update IntelliSense time (sec): 0.139
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: Sending response (id: 10)
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: Sending response (id: 11)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: (received) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 12)
LSP: (invoked) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 13)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
Database safe to open.
LSP: (received) cpptools/getDiagnostics (id: 14)
LSP: (invoked) cpptools/getDiagnostics (id: 14)
LSP: Sending response (id: 14)
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) cpptools/didChangeActiveEditor: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
"compilerPath" = "" - notice -mcpu and compile_commands.json are both mentioned
loggingLevel: Debug
LSP: (received) cpptools/initialize (id: 1)
LSP: (invoked) cpptools/initialize (id: 1)
cpptools version (TypeScript): 1.19.2
cpptools version (native): 1.19.2.0
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
LSP: Sending response (id: 1)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeCppProperties (id: 2)
LSP: (invoked) cpptools/didChangeCppProperties (id: 2)
Code browsing service initialized
Skipping query of compiler due to explicitly empty compilerPath
Skipping query of compiler due to explicitly empty compilerPath
Querying compiler for default C++ language standard using command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 3)
LSP: (received) cpptools/didChangeCppProperties (id: 4)
LSP: Message ignored due to no registered handler: $/setTrace
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -std=gnu17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in compile_commands.json file: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
Querying compiler for default C++ language standard using command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -x c++ -E -dM nul
LSP: (received) cpptools/queryCompilerDefaults (id: 5)
Detected language standard version: gnu++14
Querying compiler's default target using command line: "H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE" -dumpmachine
Compiler returned default target value: arm-none-eabi
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=c++17 -fno-rtti -fno-use-cxa-atexit -fno-exceptions -fno-threadsafe-statics -ftemplate-depth=4096 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -Wextra -Wno-address-of-packed-member -Wredundant-decls -Wdouble-promotion -fdata-sections -ffunction-sections -fsingle-precision-constant -fno-math-errno -g -Os -mword-relocations -mlong-calls -fno-common -nostdlib -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in compile_commands.json file: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
Folder: H:/DEV/FLIPPER-ZERO/MODE7_DEMO/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/ will be indexed
Folder: H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/ will be indexed
LSP: Sending response (id: 2)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 3)
Discovering files...
LSP: (received) cpptools/queryCompilerDefaults (id: 6)
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/MODE7_DEMO/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE-FIXED/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/LIB/GCC/ARM-NONE-EABI/10.3.1/INCLUDE/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/TOOLCHAIN/X86_64-WINDOWS/ARM-NONE-EABI/INCLUDE/
LSP: Sending response (id: 3)
LSP: (invoked) cpptools/didChangeCppProperties (id: 4)
LSP: Sending response (id: 4)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 5)
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -std=c17 -Wp,-v -E -dM -x c nul
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/BUILD/MODE7_DEMO/
Processing folder (recursive): H:/DEV/FLIPPER-ZERO/.UFBT/CURRENT/SDK_HEADERS/F7_SDK/
Discovering files: 1798 file(s) processed
0 file(s) removed from database
Done discovering files.
Populating include completion cache.
Parsing remaining files...
Parsing: 0 files(s) processed
Done parsing remaining files.
Attempting to get defaults from C compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE -std=gnu++14 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-gcc.EXE'
LSP: Sending response (id: 5)
LSP: (invoked) cpptools/queryCompilerDefaults (id: 6)
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=c17 -Wp,-v -E -dM -x c nul
Attempting to get defaults from C compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
Compiler query command line: H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE -std=gnu++14 -Wp,-v -E -dM -x c++ nul
Attempting to get defaults from C++ compiler in "compilerPath" property: 'H:\dev\flipper-zero\.ufbt\toolchain\x86_64-windows\bin\arm-none-eabi-g++.EXE'
LSP: Sending response (id: 6)
LSP: (received) cpptools/didChangeCppProperties (id: 7)
LSP: (invoked) cpptools/didChangeCppProperties (id: 7)
LSP: Sending response (id: 7)
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (invoked) textDocument/didOpen: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
Intellisense update pending for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeVisibleTextEditors
LSP: (invoked) cpptools/didChangeVisibleTextEditors
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 8)
LSP: (received) cpptools/didChangeSettings
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: Sending response (id: 8)
LSP: (invoked) cpptools/didChangeSettings
LSP: (received) cpptools/clearCustomConfigurations
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 9)
LSP: (invoked) cpptools/clearCustomConfigurations
LSP: $/cancelRequest (cpptools/getFoldingRanges, id: 9)
LSP: $/cancelRequest (<unknown/completed>, id: 8)
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 10)
LSP: Sending response (id: 10)
IntelliSense update scheduled and TU acquisition started for: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp
sending compilation args for H:\dev\flipper-zero\mode7_demo\mode7_demo.cpp
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\FURI
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\APPLICATIONS\SERVICES
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\FURI_HAL_INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\BLE_GLUE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\FURI_HAL
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\TARGETS\F7\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MLIB
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\CMSIS_CORE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_CMSIS\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\STM32WB_HAL\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MBEDTLS\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\TOOLBOX
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LIBUSB_STM32\INC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DRIVERS
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_FORMAT
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\ONE_WIRE
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\IBUTTON
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\ENCODER_DECODER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\INFRARED\WORKER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SUBGHZ
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NFC
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\DIGITAL_SIGNAL
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\PULSE_READER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\SIGNAL_READER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\LFRFID
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\FLIPPER_APPLICATION
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\MUSIC_WORKER
include: H:\DEV\FLIPPER-ZERO\.UFBT\CURRENT\SDK_HEADERS\F7_SDK\LIB\NANOPB
include: H:\DEV\FLIPPER-ZERO\.UFBT\BUILD\MODE7_DEMO
include: H:\DEV\FLIPPER-ZERO\MODE7_DEMO
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\ARM-NONE-EABI\THUMB\V7E-M+FP\HARD
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE\C++\10.3.1\BACKWARD
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\LIB\GCC\ARM-NONE-EABI\10.3.1\INCLUDE-FIXED
include: H:\DEV\FLIPPER-ZERO\.UFBT\TOOLCHAIN\X86_64-WINDOWS\ARM-NONE-EABI\INCLUDE
define: __DBL_MIN_EXP__=(-1021)
define: __HQ_FBIT__=15
define: __UINT_LEAST16_MAX__=0xffff
define: __ARM_SIZEOF_WCHAR_T=4
define: __SFRACT_IBIT__=0
define: __FLT_MIN__=1.1754943508222875e-38F
define: __GCC_IEC_559_COMPLEX=0
define: __UFRACT_MAX__=0XFFFFP-16UR
define: __UINT_LEAST8_TYPE__=unsigned char
define: __FLT_MAX_EXP__=128
define: __DQ_FBIT__=63
define: __INTMAX_C(c)=c ## LL
define: __ARM_FEATURE_SAT=1
define: __ULFRACT_FBIT__=32
define: __CHAR_BIT__=8
define: __USQ_IBIT__=0
define: __UINT8_MAX__=0xff
define: __ACCUM_FBIT__=15
define: __WINT_MAX__=0xffffffffU
define: __FLT32_MIN_EXP__=(-125)
define: __USFRACT_FBIT__=8
define: __ORDER_LITTLE_ENDIAN__=1234
define: __SIZE_MAX__=0xffffffffU
define: __WCHAR_MAX__=0xffffffffU
define: __LACCUM_IBIT__=32
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
define: __DBL_DENORM_MIN__=double(4.9406564584124654e-324L)
define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
define: __GCC_IEC_559=0
define: __FLT32X_DECIMAL_DIG__=17
define: __FLT_EVAL_METHOD__=0
define: __TQ_IBIT__=0
define: __LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK
define: __FLT64_DECIMAL_DIG__=17
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
define: __INTPTR_WIDTH__=32
define: __UINT_FAST64_MAX__=0xffffffffffffffffULL
define: __SIG_ATOMIC_TYPE__=int
define: __DBL_MIN_10_EXP__=(-307)
define: __FINITE_MATH_ONLY__=0
define: __ARMEL__=1
define: __FLT32X_MAX_EXP__=1024
define: __LFRACT_IBIT__=0
define: __GNUC_PATCHLEVEL__=1
define: __FLT32_HAS_DENORM__=1
define: __USA_FBIT__=16
define: __UINT_FAST8_MAX__=0xffffffffU
define: __INT8_C(c)=c
define: __INT_LEAST8_WIDTH__=8
define: __UINT_LEAST64_MAX__=0xffffffffffffffffULL
define: __INT16_MAX__=0x7fff
define: __SA_FBIT__=15
define: __APCS_32__=1
define: __SHRT_MAX__=0x7fff
define: __LDBL_MAX__=1.7976931348623157e+308L
define: __FRACT_MAX__=0X7FFFP-15R
define: __thumb2__=1
define: __UFRACT_FBIT__=16
define: __ARM_FP=4
define: __UFRACT_MIN__=0.0UR
define: __UINT_LEAST8_MAX__=0xff
define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
define: __UINTMAX_TYPE__=long long unsigned int
define: __LLFRACT_EPSILON__=0x1P-63LLR
define: __FLT_EVAL_METHOD_TS_18661_3__=0
define: __CHAR_UNSIGNED__=1
define: __UINT32_MAX__=0xffffffffUL
define: __GXX_EXPERIMENTAL_CXX0X__=1
define: __ULFRACT_MAX__=0XFFFFFFFFP-32ULR
define: __TA_IBIT__=64
define: __LDBL_MAX_EXP__=1024
define: __WINT_MIN__=0U
define: __ARM_ASM_SYNTAX_UNIFIED__=1
define: __INT_LEAST16_WIDTH__=16
define: __ULLFRACT_MIN__=0.0ULLR
define: __SCHAR_MAX__=0x7f
define: __WCHAR_MIN__=0U
define: __INT64_C(c)=c ## LL
define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
define: __LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)
define: __SIZEOF_INT__=4
define: __FLT32X_MANT_DIG__=53
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
define: __USACCUM_IBIT__=8
define: __USER_LABEL_PREFIX__=
define: __STDC_HOSTED__=1
define: __NO_MATH_ERRNO__=1
define: __ARM_FEATURE_IDIV=1
define: __FLT_DIG__=6
define: __LFRACT_MIN__=(-0.5LR-0.5LR)
define: __HA_IBIT__=8
define: __FLT32_DIG__=6
define: __FLT_EPSILON__=1.1920928955078125e-7F
define: __GXX_WEAK__=1
define: __SHRT_WIDTH__=16
define: __USFRACT_IBIT__=0
define: __LDBL_MIN__=2.2250738585072014e-308L
define: __FRACT_MIN__=(-0.5R-0.5R)
define: __DA_IBIT__=32
define: __ARM_SIZEOF_MINIMAL_ENUM=1
define: __FLT32X_HAS_INFINITY__=1
define: __UQQ_FBIT__=8
define: __SIZEOF_LONG__=4
define: __UACCUM_MAX__=0XFFFFFFFFP-16UK
define: __DECIMAL_DIG__=17
define: __LFRACT_EPSILON__=0x1P-31LR
define: __FLT64_EPSILON__=2.2204460492503131e-16F64
define: __FLT64_MIN_EXP__=(-1021)
define: __ARM_PCS_VFP=1
define: __LDBL_HAS_QUIET_NAN__=1
define: __ULACCUM_IBIT__=32
define: __ARM_FEATURE_FMA=1
define: __FLT64_MANT_DIG__=53
define: __UACCUM_EPSILON__=0x1P-16UK
define: __GNUC__=10
define: __ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK
define: __HQ_IBIT__=0
define: __FLT_HAS_DENORM__=1
define: __SIZEOF_LONG_DOUBLE__=8
define: __SA_IBIT__=16
define: __BIGGEST_ALIGNMENT__=8
define: __STDC_UTF_16__=1
define: __INTPTR_TYPE__=int
define: __SIZE_TYPE__=unsigned int
define: __FLT64_MAX_10_EXP__=308
define: __DBL_DIG__=15
define: __ULLACCUM_FBIT__=32
define: __GNUC_STDC_INLINE__=1
define: __DQ_IBIT__=0
define: __DBL_MAX__=double(1.7976931348623157e+308L)
define: __ULFRACT_IBIT__=0
define: __INT_FAST32_MAX__=0x7fffffff
define: __DBL_HAS_INFINITY__=1
define: __HAVE_SPECULATION_SAFE_VALUE=1
define: __ACCUM_IBIT__=16
define: __THUMB_INTERWORK__=1
define: __UINT_LEAST32_MAX__=0xffffffffUL
define: __ULLACCUM_IBIT__=32
define: __LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK
define: __FLT32X_HAS_DENORM__=1
define: __INT_FAST16_TYPE__=int
define: __STRICT_ANSI__=1
define: __LDBL_HAS_DENORM__=1
define: __ARM_FEATURE_LDREX=7
define: __cplusplus=201703L
define: __FLT32_DECIMAL_DIG__=9
define: __INT_LEAST32_MAX__=0x7fffffffL
define: __ACCUM_MAX__=0X7FFFFFFFP-15K
define: __DEPRECATED=1
define: __DBL_MAX_EXP__=1024
define: __USACCUM_EPSILON__=0x1P-8UHK
define: __WCHAR_WIDTH__=32
define: __FLT32_MAX__=3.4028234663852886e+38F32
define: __SFRACT_MAX__=0X7FP-7HR
define: __FRACT_IBIT__=0
define: __PTRDIFF_MAX__=0x7fffffff
define: __UACCUM_MIN__=0.0UK
define: __UACCUM_IBIT__=16
define: __FLT32_HAS_QUIET_NAN__=1
define: __GNUG__=10
define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
define: __ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK
define: __SIZEOF_WINT_T__=4
define: __ARM_FEATURE_UNALIGNED=1
define: __LONG_LONG_WIDTH__=64
define: __FLT32_MAX_EXP__=128
define: __ULLACCUM_MIN__=0.0ULLK
define: __GXX_ABI_VERSION=1014
define: __UTA_FBIT__=64
define: __GCC_HAVE_DWARF2_CFI_ASM=1
define: __UFRACT_IBIT__=0
define: __USQ_FBIT__=32
define: __ARM_FEATURE_QBIT=1
define: __INT_FAST64_TYPE__=long long int
define: __FP_FAST_FMAF=1
define: __FLT64_DENORM_MIN__=4.9406564584124654e-324F64
define: __DBL_MIN__=double(2.2250738585072014e-308L)
define: __SIZEOF_POINTER__=4
define: __INT16_TYPE__=short int
define: __DBL_HAS_QUIET_NAN__=1
define: __FLT32X_EPSILON__=2.2204460492503131e-16F32x
define: __LACCUM_MIN__=(-0X1P31LK-0X1P31LK)
define: __FRACT_FBIT__=15
define: __FLT64_MIN_10_EXP__=(-307)
define: __ULLFRACT_EPSILON__=0x1P-64ULLR
define: __USES_INITFINI__=1
define: __REGISTER_PREFIX__=
define: __UINT16_MAX__=0xffff
define: __ACCUM_MIN__=(-0X1P15K-0X1P15K)
define: __SQ_IBIT__=0
define: __UINT8_TYPE__=unsigned char
define: __UHA_FBIT__=8
define: __SFRACT_MIN__=(-0.5HR-0.5HR)
define: __UTQ_FBIT__=128
define: __DEC_EVAL_METHOD__=2
define: __FLT_MANT_DIG__=24
define: __LDBL_DECIMAL_DIG__=17
define: __VERSION__="10.3.1 20210824 (release)"
define: __UINT64_C(c)=c ## ULL
define: __FRACT_EPSILON__=0x1P-15R
define: __ULACCUM_MIN__=0.0ULK
define: __UDA_FBIT__=32
define: __GCC_ATOMIC_INT_LOCK_FREE=2
define: __FLT_MIN_EXP__=(-125)
define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __USFRACT_MIN__=0.0UHR
define: __FLT32_MANT_DIG__=24
define: __ULLFRACT_FBIT__=64
define: __UQQ_IBIT__=0
define: __SCHAR_WIDTH__=8
define: __INT32_C(c)=c ## L
define: __ORDER_PDP_ENDIAN__=3412
define: __UHQ_FBIT__=16
define: __LLACCUM_FBIT__=31
define: __INT_FAST32_TYPE__=int
define: __UINT_LEAST16_TYPE__=short unsigned int
define: __DBL_HAS_DENORM__=1
define: __UINT64_MAX__=0xffffffffffffffffULL
define: __UDQ_FBIT__=64
define: __INT8_TYPE__=signed char
define: __thumb__=1
define: __ELF__=1
define: __SACCUM_EPSILON__=0x1P-7HK
define: __ULFRACT_EPSILON__=0x1P-32ULR
define: __LLFRACT_FBIT__=63
define: __FLT_RADIX__=2
define: __INT_LEAST16_TYPE__=short int
define: __ARM_ARCH_PROFILE=77
define: __LDBL_EPSILON__=2.2204460492503131e-16L
define: __UINTMAX_C(c)=c ## ULL
define: __SACCUM_MAX__=0X7FFFP-7HK
define: __FLT32X_MIN__=2.2250738585072014e-308F32x
define: __SIG_ATOMIC_MAX__=0x7fffffff
define: __UACCUM_FBIT__=16
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
define: __VFP_FP__=1
define: __SIZEOF_PTRDIFF_T__=4
define: __ATOMIC_ACQUIRE=2
define: __INT_WIDTH__=32
define: __OPTIMIZE__=1
define: __LACCUM_EPSILON__=0x1P-31LK
define: __LDBL_DIG__=15
define: __FLT32X_MIN_EXP__=(-1021)
define: __INT_FAST16_MAX__=0x7fffffff
define: __LFRACT_MAX__=0X7FFFFFFFP-31LR
define: __FLT64_DIG__=15
define: __UINT_FAST32_MAX__=0xffffffffU
define: __UINT_LEAST64_TYPE__=long long unsigned int
define: __SFRACT_EPSILON__=0x1P-7HR
define: __GCC_ASM_FLAG_OUTPUTS__=1
define: __FLT_HAS_QUIET_NAN__=1
define: __FLT_MAX_10_EXP__=38
define: __LONG_MAX__=0x7fffffffL
define: __SIZEOF_SIZE_T__=4
define: __FLT_HAS_INFINITY__=1
define: __UINT_FAST16_TYPE__=unsigned int
define: __ARM_32BIT_STATE=1
define: __INT_FAST32_WIDTH__=32
define: __CHAR16_TYPE__=short unsigned int
define: __PRAGMA_REDEFINE_EXTNAME=1
define: __SIZE_WIDTH__=32
define: __INT_LEAST16_MAX__=0x7fff
define: __INT64_MAX__=0x7fffffffffffffffLL
define: __SACCUM_FBIT__=7
define: __FLT32_DENORM_MIN__=1.4012984643248171e-45F32
define: __SIG_ATOMIC_WIDTH__=32
define: __INT_LEAST64_TYPE__=long long int
define: __ARM_FEATURE_CLZ=1
define: __INT_LEAST8_TYPE__=signed char
define: __SQ_FBIT__=31
define: __USFRACT_MAX__=0XFFP-8UHR
define: __ARM_ARCH_ISA_THUMB=2
define: __INT_FAST8_MAX__=0x7fffffff
define: __ARM_ARCH=7
define: __INTPTR_MAX__=0x7fffffff
define: __QQ_FBIT__=7
define: __UTA_IBIT__=64
define: __FLT64_HAS_QUIET_NAN__=1
define: __UINT16_C(c)=c
define: __PTRDIFF_WIDTH__=32
define: __LDBL_MANT_DIG__=53
define: __SFRACT_FBIT__=7
define: __SACCUM_MIN__=(-0X1P7HK-0X1P7HK)
define: __FLT64_HAS_INFINITY__=1
define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=8
define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
define: __GCC_ATOMIC_LONG_LOCK_FREE=2
define: __UINT16_TYPE__=short unsigned int
define: __WCHAR_TYPE__=unsigned int
define: __SIZEOF_FLOAT__=4
define: __THUMBEL__=1
define: __TQ_FBIT__=127
define: __UINTPTR_MAX__=0xffffffffU
define: __INT_FAST64_WIDTH__=64
define: __INT_FAST64_MAX__=0x7fffffffffffffffLL
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __FLT_NORM_MAX__=3.4028234663852886e+38F
define: __FLT32_HAS_INFINITY__=1
define: __UINT_FAST64_TYPE__=long long unsigned int
define: __LACCUM_FBIT__=31
define: __HA_FBIT__=7
define: __UHA_IBIT__=8
define: __INT64_TYPE__=long long int
define: __UTQ_IBIT__=0
define: __DBL_MANT_DIG__=53
define: __INT_LEAST64_MAX__=0x7fffffffffffffffLL
define: __FP_FAST_FMAF32=1
define: __WINT_TYPE__=unsigned int
define: __UINT_LEAST32_TYPE__=long unsigned int
define: __SIZEOF_SHORT__=2
define: __ULLFRACT_IBIT__=0
define: __FLT32_NORM_MAX__=3.4028234663852886e+38F32
define: __LDBL_MIN_EXP__=(-1021)
define: __GXX_TYPEINFO_EQUALITY_INLINE=0
define: __INTMAX_MAX__=0x7fffffffffffffffLL
define: __arm__=1
define: __FLT64_MAX__=1.7976931348623157e+308F64
define: __UDA_IBIT__=32
define: __INT_MAX__=0x7fffffff
define: __WINT_WIDTH__=32
define: __INT_LEAST8_MAX__=0x7f
define: __INT_LEAST64_WIDTH__=64
define: __FLT32X_MAX_10_EXP__=308
define: __LLACCUM_EPSILON__=0x1P-31LLK
define: __LFRACT_FBIT__=31
define: __WCHAR_UNSIGNED__=1
define: __LDBL_MAX_10_EXP__=308
define: __ATOMIC_RELAXED=0
define: __DBL_EPSILON__=double(2.2204460492503131e-16L)
define: __ARM_ARCH_7EM__=1
define: __ARM_FEATURE_SIMD32=1
define: __UINT8_C(c)=c
define: __FLT64_MAX_EXP__=1024
define: __INT_LEAST32_TYPE__=long int
define: __SIZEOF_WCHAR_T__=4
define: __LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR
define: __FLT64_NORM_MAX__=1.7976931348623157e+308F64
define: __INT_FAST8_TYPE__=int
define: __ULLACCUM_EPSILON__=0x1P-32ULLK
define: __USACCUM_MAX__=0XFFFFP-8UHK
define: __LDBL_HAS_INFINITY__=1
define: __FLT32_MAX_10_EXP__=38
define: __UHQ_IBIT__=0
define: __ARM_FEATURE_COPROC=15
define: __LLACCUM_IBIT__=32
define: __ULFRACT_MIN__=0.0ULR
define: __FLT64_HAS_DENORM__=1
define: __FLT32_EPSILON__=1.1920928955078125e-7F32
define: __DBL_DECIMAL_DIG__=17
define: __STDC_UTF_32__=1
define: __INT_FAST8_WIDTH__=32
define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
define: __FLT32X_MAX__=1.7976931348623157e+308F32x
define: __TA_FBIT__=63
define: __DBL_NORM_MAX__=double(1.7976931348623157e+308L)
define: __UDQ_IBIT__=0
define: __INTMAX_WIDTH__=64
define: __ORDER_BIG_ENDIAN__=4321
define: __ARM_FEATURE_DSP=1
define: __UINT64_TYPE__=long long unsigned int
define: __ACCUM_EPSILON__=0x1P-15K
define: __UINT32_C(c)=c ## UL
define: __QQ_IBIT__=0
define: __FLT_DENORM_MIN__=1.4012984643248171e-45F
define: __LLFRACT_IBIT__=0
define: __INT8_MAX__=0x7f
define: __LONG_WIDTH__=32
define: __INT32_MAX__=0x7fffffffL
define: __UINT_FAST32_TYPE__=unsigned int
define: __FLT32X_NORM_MAX__=1.7976931348623157e+308F32x
define: __CHAR32_TYPE__=long unsigned int
define: __FLT32_MIN_10_EXP__=(-37)
define: __FLT_MAX__=3.4028234663852886e+38F
define: __USACCUM_FBIT__=8
define: __INT32_TYPE__=long int
define: __SIZEOF_DOUBLE__=8
define: __FLT_MIN_10_EXP__=(-37)
define: __UFRACT_EPSILON__=0x1P-16UR
define: __FLT64_MIN__=2.2250738585072014e-308F64
define: __INT_LEAST32_WIDTH__=32
define: __INTMAX_TYPE__=long long int
define: __FLT32X_HAS_QUIET_NAN__=1
define: __ATOMIC_CONSUME=1
define: __GNUC_MINOR__=3
define: __INT_FAST16_WIDTH__=32
define: __UINTMAX_MAX__=0xffffffffffffffffULL
define: __FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x
define: __ATOMIC_ACQ_REL=4
define: __DBL_MAX_10_EXP__=308
define: __LDBL_DENORM_MIN__=4.9406564584124654e-324L
define: __INT16_C(c)=c
define: __STDC__=1
define: __FLT32X_DIG__=15
define: __PTRDIFF_TYPE__=int
define: __LLFRACT_MIN__=(-0.5LLR-0.5LLR)
define: __USACCUM_MIN__=0.0UHK
define: __FLT32_MIN__=1.1754943508222875e-38F32
define: __ATOMIC_SEQ_CST=5
define: __DA_FBIT__=31
define: __OPTIMIZE_SIZE__=1
define: __UINT32_TYPE__=long unsigned int
define: __FLT32X_MIN_10_EXP__=(-307)
define: __ARM_ARCH_EXT_IDIV__=1
define: __UINTPTR_TYPE__=unsigned int
define: __USA_IBIT__=16
define: __ARM_EABI__=1
define: __LDBL_MIN_10_EXP__=(-307)
define: __SIZEOF_LONG_LONG__=8
define: __ULACCUM_EPSILON__=0x1P-32ULK
define: __SACCUM_IBIT__=8
define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
define: __FLT_DECIMAL_DIG__=9
define: __UINT_FAST16_MAX__=0xffffffffU
define: __LDBL_NORM_MAX__=1.7976931348623157e+308L
define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
define: __ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR
define: __UINT_FAST8_TYPE__=unsigned int
define: __USFRACT_EPSILON__=0x1P-8UHR
define: __ULACCUM_FBIT__=32
define: __ATOMIC_RELEASE=3
define: _GNU_SOURCE
define: FW_CFG_default
define: M_MEMORY_FULL(x)=abort()
define: STM32WB
define: STM32WB55xx
define: USE_FULL_ASSERT
define: USE_FULL_LL_DRIVER
define: MBEDTLS_CONFIG_FILE="mbedtls_cfg.h"
define: PB_ENABLE_MALLOC
define: FW_ORIGIN_Official
define: FURI_NDEBUG
define: NDEBUG
define: FAP_VERSION="0.1"
other: --g++
other: --gnu_version=100301
stdver: c++17
intelliSenseMode: windows-gcc-arm
Update IntelliSense time (sec): 0.147
LSP: (received) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (invoked) cpptools/getCodeActions: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 11)
LSP: (received) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: Sending response (id: 11)
LSP: (invoked) cpptools/getDocumentSymbols: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 12)
LSP: Sending response (id: 12)
LSP: Message ignored due to no registered handler: $/setTrace
LSP: (received) cpptools/didChangeSettings
LSP: (invoked) cpptools/didChangeSettings
Autocomplete is enabled.
Error squiggles are enabled if all header dependencies are resolved.
Hover is enabled.
IntelliSense Engine = default.
Enhanced Colorization is enabled.
LSP: (received) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: (invoked) cpptools/getFoldingRanges: file:///h%3A/dev/flipper-zero/mode7_demo/mode7_demo.cpp (id: 13)
LSP: Sending response (id: 13)
Based on this behaviour, I believe "compilerPath"
overrides the entire "command"
parameter instead of just the first part of it, or maybe it ignores compile_commands.json
entirely. The approach used by the toolchain I use is not recommended over "arguments"
, but it is allowed:
command: The compile command as a single shell-escaped string. Arguments may be shell quoted and escaped following platform conventions, with ‘"’ and ‘\’ being the only special characters. Shell expansion is not supported.
Either arguments or command is required. arguments is preferred, as shell (un)escaping is a possible source of errors.
I had a quick look at the toolchain and modifying it to emit "arguments"
instead of "command"
wouldn't be trivial - it already operates on an escaped and joined list of arguments so splitting them again would not be worth it. It would be better for the extension to correctly handle this (valid) use case instead.
Hi @CookiePLMonster
I do not see any failure to query a compiler in your logs, so we can rule that (and fallback scenarios) out.
Putting together a simple example of what you've described, I'm unable to reproduce the behavior we're seeing in your logs. There would seem to be something about your environment, workspace, or configuration that we may need to know to understand what's going on.
Are you using a single-root or multi-root workspace? I'm seeing a multitude of "didChangeCppProperties" messages in the logs you provided, which I don't see in my local repro. If you're using multiple roots, the configuration(s) of the other root(s) might be relevant.
Can you provide us with a stand-alone example, as a github repo or a zip file? I suspect this would not be difficult for us to address if we could repro locally.
Hey @Colengms, considering I was not even aware multi-root workspaces are a thing, I use a single-root one. Always opening the directory as a workspace.
Can you provide us with a stand-alone example, as a github repo or a zip file? I suspect this would not be difficult for us to address if we could repro locally.
The project I encountered this issue with is open source, standalone and self-contained - as in, it keeps the toolchain and all intermediates in its own repo directory only, not polluting the home directory or PATH. I suspect for this reason it should serve you well as a test case:
- Clone https://github.com/flipperdevices/flipperzero-firmware with all submodules.
- In the repository root, run
./fbt vscode_dist
. This sets up the VSCode workspace and downloads the toolchain for compilation. Worry not, it downloads those to atoolchain/
directory in the repo directory, not impacting your environment otherwise. - Open the workspace in VSCode, Press Ctrl+Shift+B to bring up the Build menu and run the
[Debug] Build Firmware
task.
With this set-up done, you may now observe the issue:
-
build/latest/compile_commands.json
has been created by the toolchain. Do note the command contains options like-mcpu=cortex-m4
that are supposed to impact the system defines IntelliSense sees. - Open any
.c
file mentioned in the JSON file. In my case, I went forfuri/flipper.c
. - Attempt to use a
__ARM_ARCH_7EM__
macro anywhere in the file. Notice IntelliSense claims it is undefined, yet (if you attempt to build) the compiler sees it as defined to1
. This is because-mcpu=cortex-m4
implies an ARMv7E instruction set, which this system define signifies. - Now open
.vscode/c_cpp_properties.json
and set"compilerPath"
to""
. Save the changes. - Navigate back to
furi/flipper.c
. Notice that IntelliSense immediately picks up on the existence on__ARM_ARCH_7EM__
and saysExpands to: 1
. This is the intended behaviour.
I hope those repro steps are workable for you.
Hi @CookiePLMonster
With those repro steps, if I remove the compilerPath
entry in the generated c_cpp_properties.json
, everything appears to work as expected. The issue would seem to be that, with the compilerPath
specified, it overrides the compile_commands.json
entry entirely, using both the compilerPath
and compilerArgs
from the base configuration (i.e. in c_cpp_properties.json
) instead of anything from compile_commands.json
.
You may be able to work around the issue by removing the compilePath
entry entirely. Or, if you need to be able to fall back to some base configuration for files not in c_cpp_properties.json
, you could copy a set of arguments from the compile_commands.json
into the compilerArgs
field of c_cpp_properties.json
. (Assuming the same args are sufficient to configure all files, that may eliminate the need to refer to the compile_commands.json
file at all. Also, the compilerArgs
field, as an array of args, should not contain any shell command-line escaping. If that's an issue, providing a complete compile command-line in the compilerPath
field, is also supported.)
I think the original intention was for compilerPath
to override only the compiler and not the arguments in compile_commands.json
. Though, instead of adjusting that behavior, I'd like to use this issue to track no longer allowing compilerPath
to override command lines in compile_commands.json
, in favor of using a separate settings value for that.
Also, I see this invalid entry present: "configurationProvider": "ms-vscode.cpptools"
Which you may want to remove also. The C/C++ Extension is not a provider of custom configurations to itself. This field would be for custom configuraiton providers such as CMake Tools, or Makefile Tools.
Hey @Colengms, your insights make sense to me, thank you! Just one note:
You may be able to work around the issue by removing the compilePath entry entirely.
Given that removing the line makes the extension fall back to cl.exe
(as I mentioned HERE), would setting the path to ""
not be preferable? This is what I proposed in the drafted PR to the linked repository and my tests have been successful.
would setting the path to "" not be preferable
That would result in no IntelliSense for files not found in compile_commands.json
. Assuming that all of the compile_commands.json
entries are indicating essentially the same arguments, you might try just pasting one of those command lines into the compilerPath
field. That may successfully configure all files appropriately, without even requiring use of the compile_commands.json
.
Assuming that all of the
compile_commands.json
entries are indicating essentially the same arguments, you might try just pasting one of those command lines into thecompilerPath
field. That may successfully configure all files appropriately, without even requiring use of thecompile_commands.json
.
I don't think that's a safe assumption as I've seen a different set of arguments for .c and .cpp files. I also don't have enough knowledge of this project's toolchain.
That would result in no IntelliSense for files not found in
compile_commands.json
.
No Intellisense at all or just not querying the compiler for defines? If it's the latter, I don't know how useful cl.exe's query be for this codebase.
Hi @CookiePLMonster .
No Intellisense at all or just not querying the compiler for defines
You're correct in that the IntelliSense engine would still provide results, but system headers are unlikely to be parsed correctly when predefined macros are not set appropriately. That usually results in IntelliSense being effectively broken.
I'm going to go ahead and correct the previously intended behavior of the compilerPath
override, to continue to use the arguments provided in compile_commands.json
. That should at least allow the original(?) approach, of specifying the same compiler in the compilePath
field, to enable fallback for files not in compile_commands.json
to use the (same) compiler in the base configuration. We expect to release 1.19.3 within days, and it should include this fix.
I'm going to go ahead and correct the previously intended behavior of the
compilerPath
override, to continue to use the arguments provided incompile_commands.json
.
This sounds perfect @Colengms, and effectively the exact change I was hoping to see when I opened this issue 👍
With this in mind, I am going to shelve my PR to the Flipper Zero repository (https://github.com/flipperdevices/flipperzero-firmware/pull/3394) and wait for 1.19.3 to release. That said, I think it is still going to be worth removing the "configurationProvider": "ms-vscode.cpptools"
entry you highlighted earlier as invalid.
Hey @Colengms, did the bug fix make it to 1.19.3? While the issue is not linked, this change log entry sounds related:
Fix an issue where use of an explicit
compilerPath
to override the compiler in acompile_commands.json
with also throw out the compiler arguments.
EDIT:
It's been fixed! I verified on a clear project and a regenerated vscode environment that IntelliSense now respects -mcpu
with the compilerPath
still set:
Yes, it was fixed in 1.19.3 (as your EDIT confirms). I have updated the project marking to reflect which release it went in. It was accidentally marked for 1.20.
Should this issue be closed then? Or do you wish to use it to track that "additional setting" that's mentioned in a revised issue title? Or keep it open until the fix hits a mainline version and not just a pre-release?
We usually keep issues open while the changes are only available in pre-release.
I think the original intention was for compilerPath to override only the compiler and not the arguments in compile_commands.json. Though, instead of adjusting that behavior, I'd like to use this issue to track no longer allowing compilerPath to override command lines in compile_commands.json, in favor of using a separate settings value for that.
@CookiePLMonster @bobbrow I had updated the title of this issue to track a better solution. Restoring the previous behavior is a temporary solution. My intent was not to consider this issue resolved until the solution in the title has been implemented. Please leave this issue open to track that better solution. (Or I'll need to create another one).
That's fine by me - the current behaviour is optimal already, and I'm fine with keeping this issue open.