microsoft / microsoft/vscode-cpptools

LS continuously crashes (probably with coroutines)

Open
#8,436 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug investigate: repro Language Service reliability
Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Description

Bug type: Language Service

Describe the bug

  • OS and Version: Windows 10 20H2
  • VS Code Version: 1.62.3
  • C/C++ Extension Version: v1.7.1
  • Other extensions you installed (and if the issue persists after disabling them):
  • If using SSH remote, specify OS of remote machine: Ubuntu 21.10
  • By just opening a file I get a lot of core dumps in working directory

Code sample and logs

I'm not sure what exactly causes it, but I'm experimenting with coroutines and master ASIO (as seen from compile commands).

  • Code sample
#include <boost/asio/awaitable.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/experimental/as_tuple.hpp>
#include <boost/asio/experimental/co_spawn.hpp>
#include <boost/asio/experimental/use_coro.hpp>
#include <boost/asio/use_awaitable.hpp>

#include <boost/asio/steady_timer.hpp>

#include <fmt/format.h>

using namespace boost::asio::experimental;
using namespace boost::asio;

boost::asio::experimental::coro<void() noexcept, int>
test_coro(boost::asio::io_context::executor_type exec)
{
  steady_timer::rebind_executor<io_context::executor_type>::other timer{exec};
  [[maybe_unused]] auto ec = co_await timer.async_wait(use_coro);
  assert(ec == boost::system::error_code{});
  co_return 42;
}

boost::asio::awaitable<int>
test_awaitable(boost::asio::io_context::executor_type exec)
{
  // NOTE! awaitable throws an exception for ec.
  steady_timer::rebind_executor<io_context::executor_type>::other timer{exec};
  [[maybe_unused]] auto [ec] = co_await timer.async_wait(as_tuple(use_awaitable));
  assert(ec == boost::system::error_code{});
  co_return 42;
}

extern "C" void __attribute__((noinline)) run_coro(boost::asio::io_context::executor_type const & exec)
{
  co_spawn(test_coro(exec), [](int rv)
      {
        fmt::print("Coro result: {}\n", rv);
        return;
      });
}

extern "C" void __attribute__((noinline)) run_awaitable(boost::asio::io_context::executor_type const & exec)
{
  co_spawn(exec, test_awaitable(exec), [](std::exception_ptr, int rv)
      {
        fmt::print("Awaitable result: {}\n", rv);
        return;
      });
}

int main()
{
  boost::asio::io_context ctx;

  fmt::print("Calling run_coro...\n");
  run_coro(ctx.get_executor());
  fmt::print("Done run_coro...\n");

  fmt::print("Calling run_awaitable...\n");
  run_awaitable(ctx.get_executor());
  fmt::print("Done run_awaitable...\n");

  ctx.run();

  fmt::print("ctx.run() done\n");

  return 0;
}
  • Configurations in c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "compileCommands": "${workspaceFolder}/build/debug/compile_commands.json",
            "defines": [],
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}
  • compile_commands.json
  {
    "directory": "/home/default/dsf/build/debug",
    "arguments": [
      "/home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/bin/g++",
      "-I/usr/include/x86_64-linux-gnu",
      "-std=c++17",
      "-gdwarf-3",
      "-Wall",
      "-march=corei7-avx",
      "-mtune=core-avx-i",
      "-mssse3",
      "-msse4.1",
      "-fPIC",
      "-fvisibility=hidden",
      "-fvisibility-inlines-hidden",
      "-ftemplate-backtrace-limit=20",
      "-Werror",
      "-fdiagnostics-color=always",
      "-std=c++20",
      "-fcoroutines",
      "-I../../../github/asio/include",
      "-I../../../.conan/data/boost/1.76.0/external/master/package/54b52e508da381567341503753d6a974464aa37a/include",
      "-I../../../.conan/data/fmt/6.0.0/external/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include",
      "-I../../src",
      "-Isrc",
      "-DPOSIX",
      "-D_GNU_SOURCE",
      "-D__STDC_LIMIT_MACROS",
      "-D__STDC_FORMAT_MACROS",
      "-DBOOST_SPIRIT_USE_PHOENIX_V3",
      "-DDEBUG",
      "-DHAVE_JNI_H=1",
      "-DBOOST_ASIO_NO_DEPRECATED",
      "-DBOOST_ASIO_NO_TS_EXECUTORS",
      "-DBOOST_USE_STATIC_LIBS",
      "../../src/test/coro/coro.cpp",
      "-c",
      "-o/home/default/dsf/build/debug/src/test/coro/coro.cpp.2.o"
    ],
    "file": "../../src/test/coro/coro.cpp"
  }
  • Logs from running C/C++: Log Diagnostics from the VS Code command palette
-------- Diagnostics - 11/23/2021, 12:20:10 PM
Version: 1.7.1
Current Configuration:
{
    "name": "Linux",
    "compileCommands": "${workspaceFolder}/build/debug/compile_commands.json",
    "defines": [],
    "cStandard": "c11",
    "cppStandard": "c++17",
    "compilerPathIsExplicit": false,
    "cStandardIsExplicit": true,
    "cppStandardIsExplicit": true,
    "intelliSenseModeIsExplicit": true,
    "compilerArgs": [],
    "mergeConfigurations": false,
    "browse": {
        "limitSymbolsToIncludedHeaders": true
    }
}
No active translation units.
Browse Paths from compile_commands.json, from workspace folder: /home/default/dsf
    /home/default/.conan/data/appmind/3.19.8.05/nasdaq/master_1/package/32d5022d97146f64b81807565fdb8de78126702a/include
    /home/default/.conan/data/boost/1.76.0/external/master/package/54b52e508da381567341503753d6a974464aa37a/include
    /home/default/.conan/data/c-ares/1.14.0/external/master_2/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/.conan/data/cereal/1.2.2/external/master/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include
    /home/default/.conan/data/cryptopp/8.2.0/external/master_6/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/.conan/data/etcd-proto/3.4.2/external/master_6/package/36c78bb0f0b023733096f488d19c9047b9968d60/include
    /home/default/.conan/data/flatbuffers/1.12.0/external/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/.conan/data/fmt/6.0.0/external/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/.conan/data/grpc/1.14.1/external/master_2/package/974d2b99f8fe2979838eb36c12cd7617348ec2a8/include
    /home/default/.conan/data/gtest/1.10.0/external/master/package/d516f164ba1424028d4d32e771f0fd051695ddfa/include
    /home/default/.conan/data/jdk_installer/1.8.0-201/external/master/package/69c07c65d933295fe6e09a980fd9cca9c98564fd/include
    /home/default/.conan/data/jdk_installer/1.8.0-201/external/master/package/69c07c65d933295fe6e09a980fd9cca9c98564fd/include/linux
    /home/default/.conan/data/oal/1.3.52/nasdaq/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/inc
    /home/default/.conan/data/protobuf/3.6.1/external/master_2/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/.conan/data/trompeloeil/41/external/master/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include
    /home/default/.conan/data/yaml-cpp/0.6.3/external/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
    /home/default/dsf/build/debug
    /home/default/dsf/build/debug/src
    /home/default/dsf/build/debug/src/api
    /home/default/dsf/build/debug/src/bindings/jni
    /home/default/dsf/src
    /home/default/dsf/src/api
    /home/default/github/asio/include
    /usr/include/x86_64-linux-gnu

------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 20639
Number of files parsed: 4955
sending compilation args for /home/default/dsf/src/test/coro/coro.cpp
  include: /usr/include/x86_64-linux-gnu
  include: /home/default/github/asio/include
  include: /home/default/.conan/data/boost/1.76.0/external/master/package/54b52e508da381567341503753d6a974464aa37a/include
  include: /home/default/.conan/data/fmt/6.0.0/external/master/package/1de1276dae3e984d6b2aee424a275cd086c952ad/include
  include: /home/default/dsf/src
  include: /home/default/dsf/build/debug/src
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/include/c++/10.2.0
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/include/c++/10.2.0/x86_64-linux-gnu
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/include/c++/10.2.0/backward
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/lib/gcc/x86_64-linux-gnu/10.2.0/include
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/lib/gcc/x86_64-linux-gnu/10.2.0/include-fixed
  include: /usr/local/include
  include: /home/default/.conan/data/gcc/10.2.0/external/master_2/package/32d5022d97146f64b81807565fdb8de78126702a/include
  include: /usr/include
  define: __STDC__=1
  define: __cplusplus=201709L
  define: __STDC_UTF_16__=1
  define: __STDC_UTF_32__=1
  define: __STDC_HOSTED__=1
  define: __GNUC__=10
  define: __GNUC_MINOR__=2
  define: __GNUC_PATCHLEVEL__=0
  define: __VERSION__="10.2.0"
  define: __ATOMIC_RELAXED=0
  define: __ATOMIC_SEQ_CST=5
  define: __ATOMIC_ACQUIRE=2
  define: __ATOMIC_RELEASE=3
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_CONSUME=1
  define: __pic__=2
  define: __PIC__=2
  define: __FINITE_MATH_ONLY__=0
  define: _LP64=1
  define: __LP64__=1
  define: __SIZEOF_INT__=4
  define: __SIZEOF_LONG__=8
  define: __SIZEOF_LONG_LONG__=8
  define: __SIZEOF_SHORT__=2
  define: __SIZEOF_FLOAT__=4
  define: __SIZEOF_DOUBLE__=8
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __SIZEOF_SIZE_T__=8
  define: __CHAR_BIT__=8
  define: __BIGGEST_ALIGNMENT__=32
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __ORDER_BIG_ENDIAN__=4321
  define: __ORDER_PDP_ENDIAN__=3412
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __SIZEOF_POINTER__=8
  define: __GNUG__=10
  define: __SIZE_TYPE__=long unsigned int
  define: __PTRDIFF_TYPE__=long int
  define: __WCHAR_TYPE__=int
  define: __WINT_TYPE__=unsigned int
  define: __INTMAX_TYPE__=long int
  define: __UINTMAX_TYPE__=long unsigned int
  define: __CHAR8_TYPE__=unsigned char
  define: __CHAR16_TYPE__=short unsigned int
  define: __CHAR32_TYPE__=unsigned int
  define: __SIG_ATOMIC_TYPE__=int
  define: __INT8_TYPE__=signed char
  define: __INT16_TYPE__=short int
  define: __INT32_TYPE__=int
  define: __INT64_TYPE__=long int
  define: __UINT8_TYPE__=unsigned char
  define: __UINT16_TYPE__=short unsigned int
  define: __UINT32_TYPE__=unsigned int
  define: __UINT64_TYPE__=long unsigned int
  define: __INT_LEAST8_TYPE__=signed char
  define: __INT_LEAST16_TYPE__=short int
  define: __INT_LEAST32_TYPE__=int
  define: __INT_LEAST64_TYPE__=long int
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __INT_FAST8_TYPE__=signed char
  define: __INT_FAST16_TYPE__=long int
  define: __INT_FAST32_TYPE__=long int
  define: __INT_FAST64_TYPE__=long int
  define: __UINT_FAST8_TYPE__=unsigned char
  define: __UINT_FAST16_TYPE__=long unsigned int
  define: __UINT_FAST32_TYPE__=long unsigned int
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __INTPTR_TYPE__=long int
  define: __UINTPTR_TYPE__=long unsigned int
  define: __GXX_WEAK__=1
  define: __DEPRECATED=1
  define: __GXX_RTTI=1
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __STDCPP_DEFAULT_NEW_ALIGNMENT__=16
  define: __EXCEPTIONS=1
  define: __GXX_ABI_VERSION=1014
  define: __SCHAR_MAX__=0x7f
  define: __SHRT_MAX__=0x7fff
  define: __INT_MAX__=0x7fffffff
  define: __LONG_MAX__=0x7fffffffffffffffL
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __WCHAR_MAX__=0x7fffffff
  define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
  define: __WINT_MAX__=0xffffffffU
  define: __WINT_MIN__=0U
  define: __PTRDIFF_MAX__=0x7fffffffffffffffL
  define: __SIZE_MAX__=0xffffffffffffffffUL
  define: __SCHAR_WIDTH__=8
  define: __SHRT_WIDTH__=16
  define: __INT_WIDTH__=32
  define: __LONG_WIDTH__=64
  define: __LONG_LONG_WIDTH__=64
  define: __WCHAR_WIDTH__=32
  define: __WINT_WIDTH__=32
  define: __PTRDIFF_WIDTH__=64
  define: __SIZE_WIDTH__=64
  define: __INTMAX_MAX__=0x7fffffffffffffffL
  define: __INTMAX_C(c)=c ## L
  define: __UINTMAX_MAX__=0xffffffffffffffffUL
  define: __UINTMAX_C(c)=c ## UL
  define: __INTMAX_WIDTH__=64
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT8_MAX__=0x7f
  define: __INT16_MAX__=0x7fff
  define: __INT32_MAX__=0x7fffffff
  define: __INT64_MAX__=0x7fffffffffffffffL
  define: __UINT8_MAX__=0xff
  define: __UINT16_MAX__=0xffff
  define: __UINT32_MAX__=0xffffffffU
  define: __UINT64_MAX__=0xffffffffffffffffUL
  define: __INT_LEAST8_MAX__=0x7f
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __INT_LEAST16_MAX__=0x7fff
  define: __INT16_C(c)=c
  define: __INT_LEAST16_WIDTH__=16
  define: __INT_LEAST32_MAX__=0x7fffffff
  define: __INT32_C(c)=c
  define: __INT_LEAST32_WIDTH__=32
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
  define: __INT64_C(c)=c ## L
  define: __INT_LEAST64_WIDTH__=64
  define: __UINT_LEAST8_MAX__=0xff
  define: __UINT8_C(c)=c
  define: __UINT_LEAST16_MAX__=0xffff
  define: __UINT16_C(c)=c
  define: __UINT_LEAST32_MAX__=0xffffffffU
  define: __UINT32_C(c)=c ## U
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
  define: __UINT64_C(c)=c ## UL
  define: __INT_FAST8_MAX__=0x7f
  define: __INT_FAST8_WIDTH__=8
  define: __INT_FAST16_MAX__=0x7fffffffffffffffL
  define: __INT_FAST16_WIDTH__=64
  define: __INT_FAST32_MAX__=0x7fffffffffffffffL
  define: __INT_FAST32_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffL
  define: __INT_FAST64_WIDTH__=64
  define: __UINT_FAST8_MAX__=0xff
  define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
  define: __INTPTR_MAX__=0x7fffffffffffffffL
  define: __INTPTR_WIDTH__=64
  define: __UINTPTR_MAX__=0xffffffffffffffffUL
  define: __GCC_IEC_559=2
  define: __GCC_IEC_559_COMPLEX=2
  define: __FLT_EVAL_METHOD__=0
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __DEC_EVAL_METHOD__=2
  define: __FLT_RADIX__=2
  define: __FLT_MANT_DIG__=24
  define: __FLT_DIG__=6
  define: __FLT_MIN_EXP__=(-125)
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT_MAX_EXP__=128
  define: __FLT_MAX_10_EXP__=38
  define: __FLT_DECIMAL_DIG__=9
  define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT_NORM_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
  define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
  define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
  define: __FLT_HAS_DENORM__=1
  define: __FLT_HAS_INFINITY__=1
  define: __FLT_HAS_QUIET_NAN__=1
  define: __DBL_MANT_DIG__=53
  define: __DBL_DIG__=15
  define: __DBL_MIN_EXP__=(-1021)
  define: __DBL_MIN_10_EXP__=(-307)
  define: __DBL_MAX_EXP__=1024
  define: __DBL_MAX_10_EXP__=308
  define: __DBL_DECIMAL_DIG__=17
  define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __DBL_NORM_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
  define: __DBL_EPSILON__=double(2.22044604925031308084726333618164062e-16L)
  define: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
  define: __DBL_HAS_DENORM__=1
  define: __DBL_HAS_INFINITY__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __LDBL_MANT_DIG__=64
  define: __LDBL_DIG__=18
  define: __LDBL_MIN_EXP__=(-16381)
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __LDBL_MAX_EXP__=16384
  define: __LDBL_MAX_10_EXP__=4932
  define: __DECIMAL_DIG__=21
  define: __LDBL_DECIMAL_DIG__=21
  define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __LDBL_NORM_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
  define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
  define: __LDBL_HAS_DENORM__=1
  define: __LDBL_HAS_INFINITY__=1
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __FLT32_MANT_DIG__=24
  define: __FLT32_DIG__=6
  define: __FLT32_MIN_EXP__=(-125)
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __FLT32_MAX_EXP__=128
  define: __FLT32_MAX_10_EXP__=38
  define: __FLT32_DECIMAL_DIG__=9
  define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __FLT32_NORM_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
  define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
  define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
  define: __FLT32_HAS_DENORM__=1
  define: __FLT32_HAS_INFINITY__=1
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __FLT64_MANT_DIG__=53
  define: __FLT64_DIG__=15
  define: __FLT64_MIN_EXP__=(-1021)
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __FLT64_MAX_EXP__=1024
  define: __FLT64_MAX_10_EXP__=308
  define: __FLT64_DECIMAL_DIG__=17
  define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT64_NORM_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
  define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
  define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
  define: __FLT64_HAS_DENORM__=1
  define: __FLT64_HAS_INFINITY__=1
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT128_MANT_DIG__=113
  define: __FLT128_DIG__=33
  define: __FLT128_MIN_EXP__=(-16381)
  define: __FLT128_MIN_10_EXP__=(-4931)
  define: __FLT128_MAX_EXP__=16384
  define: __FLT128_MAX_10_EXP__=4932
  define: __FLT128_DECIMAL_DIG__=36
  define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT128_NORM_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
  define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
  define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
  define: __FLT128_HAS_DENORM__=1
  define: __FLT128_HAS_INFINITY__=1
  define: __FLT128_HAS_QUIET_NAN__=1
  define: __FLT32X_MANT_DIG__=53
  define: __FLT32X_DIG__=15
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __FLT32X_MAX_EXP__=1024
  define: __FLT32X_MAX_10_EXP__=308
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __FLT32X_NORM_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
  define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
  define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
  define: __FLT32X_HAS_DENORM__=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __FLT64X_MANT_DIG__=64
  define: __FLT64X_DIG__=18
  define: __FLT64X_MIN_EXP__=(-16381)
  define: __FLT64X_MIN_10_EXP__=(-4931)
  define: __FLT64X_MAX_EXP__=16384
  define: __FLT64X_MAX_10_EXP__=4932
  define: __FLT64X_DECIMAL_DIG__=21
  define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __FLT64X_NORM_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
  define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
  define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
  define: __FLT64X_HAS_DENORM__=1
  define: __FLT64X_HAS_INFINITY__=1
  define: __FLT64X_HAS_QUIET_NAN__=1
  define: __DEC32_MANT_DIG__=7
  define: __DEC32_MIN_EXP__=(-94)
  define: __DEC32_MAX_EXP__=97
  define: __DEC32_MIN__=1E-95DF
  define: __DEC32_MAX__=9.999999E96DF
  define: __DEC32_EPSILON__=1E-6DF
  define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
  define: __DEC64_MANT_DIG__=16
  define: __DEC64_MIN_EXP__=(-382)
  define: __DEC64_MAX_EXP__=385
  define: __DEC64_MIN__=1E-383DD
  define: __DEC64_MAX__=9.999999999999999E384DD
  define: __DEC64_EPSILON__=1E-15DD
  define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
  define: __DEC128_MANT_DIG__=34
  define: __DEC128_MIN_EXP__=(-6142)
  define: __DEC128_MAX_EXP__=6145
  define: __DEC128_MIN__=1E-6143DL
  define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
  define: __DEC128_EPSILON__=1E-33DL
  define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
  define: __REGISTER_PREFIX__=
  define: __USER_LABEL_PREFIX__=
  define: __GNUC_STDC_INLINE__=1
  define: __NO_INLINE__=1
  define: __STRICT_ANSI__=1
  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: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16=1
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR8_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __HAVE_SPECULATION_SAFE_VALUE=1
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SIZEOF_INT128__=16
  define: __SIZEOF_WCHAR_T__=4
  define: __SIZEOF_WINT_T__=4
  define: __SIZEOF_PTRDIFF_T__=8
  define: __amd64=1
  define: __amd64__=1
  define: __x86_64=1
  define: __x86_64__=1
  define: __SIZEOF_FLOAT80__=16
  define: __SIZEOF_FLOAT128__=16
  define: __ATOMIC_HLE_ACQUIRE=65536
  define: __ATOMIC_HLE_RELEASE=131072
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __corei7_avx=1
  define: __corei7_avx__=1
  define: __sandybridge=1
  define: __sandybridge__=1
  define: __tune_corei7_avx__=1
  define: __tune_sandybridge__=1
  define: __code_model_small__=1
  define: __MMX__=1
  define: __SSE__=1
  define: __SSE2__=1
  define: __SSE3__=1
  define: __SSSE3__=1
  define: __SSE4_1__=1
  define: __SSE4_2__=1
  define: __PCLMUL__=1
  define: __AVX__=1
  define: __POPCNT__=1
  define: __FXSR__=1
  define: __XSAVE__=1
  define: __XSAVEOPT__=1
  define: __SSE_MATH__=1
  define: __SSE2_MATH__=1
  define: __MMX_WITH_SSE__=1
  define: __SEG_FS=1
  define: __SEG_GS=1
  define: __gnu_linux__=1
  define: __linux=1
  define: __linux__=1
  define: __unix=1
  define: __unix__=1
  define: __ELF__=1
  define: __DECIMAL_BID_FORMAT__=1
  define: _GNU_SOURCE=1
  define: _STDC_PREDEF_H=1
  define: __STDC_IEC_559__=1
  define: __STDC_IEC_559_COMPLEX__=1
  define: __STDC_ISO_10646__=201706L
  define: POSIX
  define: _GNU_SOURCE
  define: __STDC_LIMIT_MACROS
  define: __STDC_FORMAT_MACROS
  define: BOOST_SPIRIT_USE_PHOENIX_V3
  define: DEBUG
  define: HAVE_JNI_H=1
  define: BOOST_ASIO_NO_DEPRECATED
  define: BOOST_ASIO_NO_TS_EXECUTORS
  define: BOOST_USE_STATIC_LIBS
  other: --g++
  other: --gnu_version=100200
  stdver: c++20
  intelliSenseMode: linux-gcc-x64
Queueing IntelliSense update for files in translation unit of: /home/default/dsf/src/test/coro/coro.cpp
cpptools/getCodeActions: file:///home/default/dsf/src/test/coro/coro.cpp (id: 340)
cpptools/finishUpdateSquiggles
Update IntelliSense time (sec): 3.769
cpptools/fileCreated: file:///home/default/dsf/core.484451

Additional context

Core was generated by `/home/default/.vscode-server/extensions/ms-vscode.cpptools-1.7.1/bin/cpptools-s'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000000000075b069 in process_auto_parameter(a_decl_parse_state*, a_symbol*) ()
[Current thread is 1 (Thread 0x7ffb7affd640 (LWP 483289))]
(gdb) bt
#0  0x000000000075b069 in process_auto_parameter(a_decl_parse_state*, a_symbol*) ()
#1  0x0000000000757b22 in decl_specifiers(unsigned long, a_decl_parse_state*, a_decl_pos_block*) ()
#2  0x000000000070c7e8 in function_declarator(a_decl_parse_state*, unsigned long, a_type**, a_func_info_block*, a_symbol_locator*, a_type*, int, int, int, int, int, int, int, a_decl_pos_block*) ()
#3  0x0000000000715875 in r_declarator(unsigned long, unsigned long*, a_decl_parse_state*, a_type*, a_type*, a_symbol_locator*, a_type**, a_type**, int*, int*, int*, int*, a_call_conv_descr*, a_call_conv_descr*, unsigned int*, unsigned int*, an_attribute**, a_source_sequence_entry**, a_func_info_block*, a_decl_pos_block*) ()
#4  0x000000000070fed0 in declarator(unsigned long, a_decl_parse_state*, a_type*, a_symbol_locator*, a_func_info_block*, a_decl_pos_block*) ()
#5  0x00000000006a5e7a in class_member_declaration(a_class_def_state*, a_tmpl_decl_state*, an_ms_attribute*, int, a_template_param*, int*, a_type**, a_template_instance*, a_template*, a_decl_pos_block*) ()
#6  0x00000000006ac0a2 in class_member_template_declaration(a_tmpl_decl_state*) ()
#7  0x000000000096aa00 in template_declaration(a_tmpl_decl_state*) ()
#8  0x0000000000965f31 in template_or_specialization_declaration_full(a_tmpl_decl_state*, int, a_decl_parse_state*) ()
#9  0x000000000096c10a in template_or_specialization_declaration(a_token_kind*, int, a_source_position*, int, a_decl_parse_state*) ()
#10 0x000000000096be68 in reparse_abbr_func_template(a_decl_parse_state*, a_token_kind*) ()
#11 0x00000000006a7f5e in class_member_declaration(a_class_def_state*, a_tmpl_decl_state*, an_ms_attribute*, int, a_template_param*, int*, a_type**, a_template_instance*, a_template*, a_decl_pos_block*) ()
#12 0x00000000006adcdc in scan_class_definition(a_type*, a_decl_parse_state*, int, int, int, int, int, int, a_template*, a_decl_pos_block*) ()
#13 0x000000000094e4e3 in f_instantiate_template_class_full(a_type*, unsigned int*, unsigned int*, int*) ()
#14 0x00000000007b1169 in cast_type_pre_check(a_type**, a_source_position*, int, int, int) ()
#15 0x0000000000793530 in scan_functional_notation_type_conversion(a_rescan_control_block*, a_dynamic_init*, int, an_init_component*, a_type*, a_source_position*, an_operand*, int) ()
#16 0x00000000007858f4 in scan_identifier(an_operand*, int, int, a_rescan_control_block*, a_symbol*, an_operand*, int, a_template_arg*, a_symbol**, int*) ()
#17 0x0000000000772f0b in scan_expr_full(an_operand*, an_operand*, int, int) ()
#18 0x000000000076c5ba in scan_expr_list(a_token_kind, int, int, int, int, int, int) ()
#19 0x000000000076d13e in scan_call_arguments(a_type*, a_routine*, int, an_expr_node**, int, int, int, int, a_rescan_control_block*, int, an_init_component*, an_init_component**, an_operand*, int*, a_source_position*) ()
#20 0x000000000079e909 in scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) ()
#21 0x00000000007b01b4 in scan_any_call(an_operand*, an_operand*, an_operand*) ()
#22 0x0000000000777590 in scan_expr_full(an_operand*, an_operand*, int, int) ()
#23 0x00000000007884fd in scan_return_expression(a_type*, an_error_code, a_dynamic_init**, an_init_component**) ()
#24 0x0000000000925688 in statement(int, int) ()
#25 0x0000000000921708 in compound_statement_full(int, int, int, int, int, a_type**) ()
#26 0x00000000007fd3e6 in scan_function_body(a_routine*, a_func_info_block*, unsigned long, a_macro_arg_fixup**, a_macro_arg_fixup**) ()
#27 0x0000000000970dd2 in instantiate_template_function_full(a_template_instance*, a_routine*, int)
    ()
#28 0x000000000096dff9 in instantiate_entity(a_template_instance*) ()
#29 0x000000000095d06c in finalize_deduced_return_type(a_routine*, a_source_position*) ()
#30 0x000000000081f6e1 in function_lvalue_expr(a_routine*) ()
#31 0x00000000007d933d in make_function_designator_operand(a_symbol*, int, int, a_source_position*, a_source_position*, a_ref_entry*, an_operand*) ()
#32 0x00000000008e5091 in overloaded_function_catch_up_full(a_symbol*, a_symbol*, an_operand*, a_source_position*, a_source_position*, int, int, int, int, int, an_operand*, int*) ()
#33 0x00000000008e90e4 in make_resolved_overloaded_function_operand(a_symbol*, a_symbol*, an_operand*, a_source_position*, a_source_position*, int, int*, an_operand*, int, int, an_operand*) ()
#34 0x00000000008e8d9a in select_and_prepare_to_call_overloaded_function(a_symbol*, int, a_template_arg*, int, an_operand*, an_init_component*, int, int, int, int, int, int, an_overload_context, an_operand*, a_source_position*, unsigned int, a_source_position*, int*, an_operand*, an_expr_node**, int*, int) ()
#35 0x000000000079ec0a in scan_function_call(an_operand*, an_operand*, a_rescan_control_block*, an_operand*) ()
#36 0x00000000007b01b4 in scan_any_call(an_operand*, an_operand*, an_operand*) ()
#37 0x0000000000777590 in scan_expr_full(an_operand*, an_operand*, int, int) ()
#38 0x0000000000780885 in scan_void_expression(int, int, int, a_dynamic_init**, an_init_component*)
    ()
#39 0x000000000092858c in expression_statement(int) ()
#40 0x000000000092540a in statement(int, int) ()
#41 0x0000000000921708 in compound_statement_full(int, int, int, int, int, a_type**) ()
#42 0x00000000007fd3e6 in scan_function_body(a_routine*, a_func_info_block*, unsigned long, a_macro_arg_fixup**, a_macro_arg_fixup**) ()
#43 0x0000000000800489 in function_definition(a_symbol_locator*, a_decl_parse_state*, a_func_info_block*, a_decl_pos_block*) ()
#44 0x0000000000732b17 in scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) ()
#45 0x0000000000735244 in declaration(int, int, int, int, a_param_id*, a_source_range*) ()
#46 0x00000000007364b7 in linkage_specification(a_decl_parse_state*) ()
#47 0x000000000072e9c1 in scan_nonmember_declaration(a_decl_parse_state*, a_source_range*) ()
#48 0x0000000000735244 in declaration(int, int, int, int, a_param_id*, a_source_range*) ()
#49 0x000000000061cae9 in compile_fragment((anonymous namespace)::a_fragment_buffer const&, a_canonicalized_file_name, msvc::strong_typedef_t<msvc::offset_traits>, msvc::strong_typedef_t<msvc::offset_traits>, msvc::strong_typedef_t<msvc::offset_traits>, bool, a_declaration_context const&, a_region_scope_info const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool, bool, bool, bool*) ()
#50 0x0000000000619fb7 in before_tu_wrapup() ()
#51 0x000000000098fc49 in process_translation_unit(char const*, int, an_exported_template_file*) ()
#52 0x000000000068bea7 in cfe_main(int, char**) ()
#53 0x00000000009b3e26 in cfe_main_exception_handler(int, char**) ()
#54 0x000000000068bfb6 in edg_main(int, char**) ()
#55 0x00000000009ad23c in edge_compiler_main(int, char const**) ()
#56 0x000000000061a696 in preparse(int, char const**, a_scout_store*, edge::translation_unit*) ()
#57 0x00000000005e42ef in a_compiler_thread::compiler_thread_routine(a_compiler_thread*) ()
#58 0x0000000000b3bdd0 in execute_native_thread_routine ()
#59 0x00007ffba4c0b927 in start_thread (arg=<optimized out>) at pthread_create.c:435
#60 0x00007ffba4c9b9e4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

   0x000000000075b065 <+277>:   xor    %edx,%edx
   0x000000000075b067 <+279>:   xor    %ebp,%ebp
=> 0x000000000075b069 <+281>:   testb  $0x10,0x38(%rdx)
   0x000000000075b06d <+285>:   je     0x75af5c <_ZL22process_auto_parameterP18a_decl_parse_stateP8a_symbol+12>
   0x000000000075b073 <+291>:   jmp    0x75b16c <_ZL22process_auto_parameterP18a_decl_parse_stateP8a_symbol+540>

(gdb) info registers 
rax            0xf                 15
rbx            0x7f58027f3d10      140015975742736
rcx            0x7f583c054010      140016940826640
rdx            0x0                 0
rsi            0x203e30            2113072
rdi            0x7fb029f9d2d8      140394595209944
rbp            0x0                 0x0
rsp            0x7f58027f3380      0x7f58027f3380
r8             0x0                 0
r9             0x0                 0
r10            0x2a40              10816
r11            0x3400              13312
r12            0x0                 0
r13            0x840080b           138414091
r14            0x7f58027f3680      140015975741056
r15            0x7f58027f3680      140015975741056
rip            0x75b069            0x75b069 <process_auto_parameter(a_decl_parse_state*, a_symbol*)+281>
eflags         0x10246             [ PF ZF IF RF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/test/coro/coro.cpp and its compile_commands.json entry, then review the C/C++: Log Diagnostics and language-server logging output while opening the file. Done means opening the coroutine source no longer continuously produces core dumps in the working directory.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.