Open x1ntt opened 1 week ago
In addition, I would like to ask by the way that there are multiple executable files in my project, so I wrote multiple configurations (such as game and cnet in the configuration file above), but when I edit the code files of the two modules, the configuration does not switch. Is there a way to switch automatically? Or how to configure auto-completion and reference search for multiple executable files in the project?
@x1ntt You can use a multi-root workspace, one workspace folder for each executable and each workspace folder can have a different configuration.
@x1ntt We're aware of that crash, although the additional crash data might help us. We were tracking it with https://github.com/microsoft/vscode-cpptools/issues/12666, but we believe there are multiple causes of the build_sections crash, so we can keep both issues open.
@x1ntt I'm not sure how you can configure your OS to stop logging crashes dumps. Our extension isn't creating though dmp files (although cpptools-srv is crashing). You can delete the dmp files.
Are you able to find a sample repro code that repros the issue you can share with us?
@x1ntt I'm not sure how you can configure your OS to stop logging crashes dumps. Our extension isn't creating though dmp files (although cpptools-srv is crashing). You can delete the dmp files.
Are you able to find a sample repro code that repros the issue you can share with us?
Setting the process to generate core is used to track bugs in our project. It is an accident to collect the core of cpptools-srv, but maybe it will be helpful? If there is any information that needs to be obtained from the core, I can provide help (such as specific stack, specific heap variables), can you give me a debug version of cpptools-srv with symbol information, or tell me how to build cpptools-srv (I hope this is cpp development), I can reproduce it 100% here (in fact, it has crashed dozens of times just a while ago, just clicking randomly or waiting for it to analyze the project), but I can't provide the core file (the project I maintain is not open source, nor does it belong to me, the core file may contain the project structure).
For example, how is cpptools-srv started? I can execute ulimit -c 0
before its startup script or parent process starts to suppress the generation of core
I will try to reproduce it using open source projects on my own personal computer, and pay attention to possible clues in existing projects. I will feedback here, or #12666 is also OK.
@sean-mcmanus Note: Although version 1.20.0 also crashes, it can completely scan my project, while 1.23.1 can't even completely scan the project
@sean-mcmanus I found a way to reproduce the crash 100% of the time Trigger by building https://github.com/yanwei1983/luatinkerE/tree/cxx20
git clone git@github.com:yanwei1983/luatinkerE.git
luatinkerE/lua
folder, and delete src/lua.c
and src/luac.c
cmake_minimum_required(VERSION 3.8)
project(luatinkerE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ")
include(CheckCXXCompilerFlag)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
include_directories(lua/src luatinkere tests)
aux_source_directory(luatinkere cur_src) aux_source_directory(tests cur_src) aux_source_directory(lua/src cur_src)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lua/src)
add_executable(test_runner ${cur_src}) target_link_libraries(test_runner dl)
+ `mkdir build`, `cd build`, `cmake ..`, `make -j90`
+ Found code errors, fixed them, and recompiled
+ You can see cpp-tools crashing at this point
+ When clicking on a variable name in `lua_tinker.h`, `IntelliSense process crash detected: handle_update_intellisense` or `handle_reference_highlight`, `handle_completion` will appear
I didn't know where the key steps were, so I recorded a video (there were a lot of invalid operations, I was a little nervous :(
https://github.com/user-attachments/assets/bf0b13e4-6ed7-4bfc-80f9-ff7042e369c8
# The following are the relevant software versions
```shell
Version: 1.92.2 (system setup)
Submit: fee1edb8d6d72a0ddff41e5f71a671c23ed924b9
Date: 2024-08-14T17:29:30.058Z
Electron: 30.1.2
ElectronBuildId: 9870757
Chromium: 124.0.6367.243
Node.js: 20.14.0
V8: 12.4.254.20-electron.0
OS: Windows_NT x64 10.0.22631
Local system: windows11
cpp_tools: v1.23.1 (pre-release)
Remote - SSH: v0.115.1
Remote os: Rockylinux9.1
gcc: 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC)
cpptools-srv
2024/11/20 22:11:31
SIGSEGV
compare_expressions(an_expr_node*, an_expr_node*, int)+2124
compare_constants(a_constant*, a_constant*, int)+3424
compare_constants(a_constant*, a_constant*, int)+2885
equiv_template_arg_lists(a_template_arg*, a_template_arg*, int)+843
hash_find(a_hash_table*, void*, int)+120
…
find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int)+19
coalesce_template_class_reference(a_symbol*, long long, int*)+2787
…
f_is_generalized_identifier_start(long long, a_type*)+2544
decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*)+18493
type_name_full(a_decl_parse_state*)+252
…
…
find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int)+19
coalesce_template_class_reference(a_symbol*, long long, int*)+2787
…
f_is_generalized_identifier_start(long long, a_type*)+2544
decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*)+18493
type_name_full(a_decl_parse_state*)+252
…
…
find_template_class(a_symbol*, a_template_arg**, int, a_symbol*, int, int, int)+19
coalesce_template_class_reference(a_symbol*, long long, int*)+2787
…
f_is_generalized_identifier_start(long long, a_type*)+9502
…
…
scan_dependent_type_parenthesized_initializer(an_init_state*, an_init_component*)+685
…
…
ctor_initializer(a_routine*, int, int)+12331
scan_function_body(a_routine*, a_func_info_block*, unsigned long, a_macro_arg_fixup**, a_macro_arg_fixup**)+4860
function_prototype_instantiation(a_symbol*)+681
…
process_deferred_class_fixups_and_instantiations(int)+107
…
template_or_specialization_declaration_full(a_tmpl_decl_state*, int, a_decl_parse_state*)+5603
…
template_directive_or_declaration(a_token_kind*, int, a_source_position*)+229
scan_nonmember_declaration(a_decl_parse_state*, a_source_range*)+6714
…
…
scan_nonmember_declaration(a_decl_parse_state*, a_source_range*)+9443
…
…
scan_nonmember_declaration(a_decl_parse_state*, a_source_range*)+9443
I'm not sure if this is the same reason as the issue I raised, maybe it can help : )
Environment
Bug Summary and Steps to Reproduce
Bug Summary:
I didn't find a pattern for its crashes. I only saw "IntelliSense process crashed handle_quick_info" in the output window, and obtained a large number of core files. It crashed very frequently, and each core was 200-300MB in size. I guess it should fill up my hard drive soon. I need a way to stop this process from generating core files. For example, execute
ulimit -c 0
only for this processExpected behavior: No Crash.
Configuration and Logs
Sorry, due to development environment limitations, I can't easily get the log file, but I can provide the stack trace
Other Extensions
No response
Additional context