microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.52k stars 1.55k forks source link

IntelliSense database gets into bad state after extension update #8203

Open KnewHow opened 3 years ago

KnewHow commented 3 years ago

Bug type: Debugger

Describe the bug

To Reproduce Please include a code sample and launch.json configuration. Steps to reproduce the behavior:

  1. Find a any method in a cpp class
  2. click right and choose the [Find all References] function
  3. It will tell you no results.
  4. It is very disappoint!

Additional context I want to use v1.6.0, but the VSCODE always auto install the v1.7.0-insiders for me. But the v1.7.0-insiders has a bug for [Find all References] when I'm viewing code! I don't how to close the auto install. If you can control it, please give me a switch to close auto install function. Or you can recommend new version for me, I can choose whether to install it, don't auto install it. I feel very uncomfortable!

michelleangela commented 3 years ago

@KnewHow Could you try 1.7.0-insiders2 and see if the issue is resolved? If the issue still persists, could you provide the following:

If you would like to disable auto-update to insiders, set C_Cpp.updateChannel to "Default"

KnewHow commented 3 years ago

I would, but How can I install 1.7.0-insiders2?

Michelle Matias @.***> 于2021年10月1日周五 上午8:50写道:

@KnewHow https://github.com/KnewHow Could you try 1.7.0-insiders2 and see if the issue is resolved? If the issue still persists, could you provide the following:

If you would like to disable auto-update to insiders, set C_Cpp.updateChannel to "Default"

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/8203#issuecomment-931807499, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK2IETIUFCHJBYBA2EX2LTUEUAWHANCNFSM5E7EGHKA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

sean-mcmanus commented 3 years ago

If you have C_Cpp.updateChannel set to "Insiders", then it should automatically update to 1.7.0-insiders2.

KnewHow commented 3 years ago

OK! I will try it, if with some problem, I will report to you. Thanks your team give us a so convenient plugin! All the best!

Sean McManus @.***> 于2021年10月1日周五 上午9:23写道:

If you have C_Cpp.updateChannel set to "Insiders", then it should automatically update to 1.7.0-insiders2.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/8203#issuecomment-931821001, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK2IEXAVATPCKHEQIJN7R3UEUEPTANCNFSM5E7EGHKA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

KnewHow commented 3 years ago

As you see, the function [SinTheta] has been called by below functions several times. But when I use [Find All references] for this function to find where the function is called. However, there are no results ! [image: Screenshot from 2021-10-01 14-32-22.png] The debug log is below: textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 650) textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 651) textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 652) cpptools/findAllReferences: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 653) textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 654) textDocument/hover: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 655) textDocument/definition: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 656) cpptools/textEditorSelectionChange cpptools/getCodeActions: file:///home/knewhow/dev/pbrt-v3/src/core/reflection.h (id: 657)

and you can find the source code file in: https://github.com/mmp/pbrt-v3/blob/master/src/core/reflection.h

I also try some others functions to use it. But I find sometimes it will work well, but sometimes is disappoint. I don't know why.

袁国浩 @.***> 于2021年10月1日周五 上午9:37写道:

OK! I will try it, if with some problem, I will report to you. Thanks your team give us a so convenient plugin! All the best!

Sean McManus @.***> 于2021年10月1日周五 上午9:23写道:

If you have C_Cpp.updateChannel set to "Insiders", then it should automatically update to 1.7.0-insiders2.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/8203#issuecomment-931821001, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK2IEXAVATPCKHEQIJN7R3UEUEPTANCNFSM5E7EGHKA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

sean-mcmanus commented 3 years ago

I'll see if someone on our team can repro this.

michelleangela commented 3 years ago

@KnewHow We were able to reproduce this by first installing 1.6.0 and then updating to 1.7.0-insiders2 while a project was open.

A workaround to fix the issue for now is to reset the IntelliSense database. Perhaps the database got corrupted during the update. Could you try resetting the database and see if it fixes the issue on 1.7.0-insiders2? To reset the database, run the command C/C++: Reset IntelliSense Database from the VS Code command palette.

KnewHow commented 3 years ago

OK, I have tested it, the problem has been solved in version 1.7.0. Thank you, All the best.

Michelle Matias @.***> 于2021年10月13日周三 上午4:53写道:

@KnewHow https://github.com/KnewHow We were able to reproduce this by first installing 1.6.0 and then updating to 1.7.0-insiders2 while a project was open.

A workaround to fix the issue for now is to reset the IntelliSense database. Perhaps the database got corrupted during the update. Could you try resetting the database and see if it fixes the issue on 1.7.0-insiders2? To reset the database, run the command C/C++: Reset IntelliSense Database from the VS Code command palette.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/8203#issuecomment-941534511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK2IEWBRFYBS4UEEGRGQF3UGSN5XANCNFSM5E7EGHKA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

KnewHow commented 3 years ago

But I find a phenomenon, when I open some projects that I used vscode to open them severals weeks ago, I must need to this C/C++: Reset IntelliSense Database operation, otherwise the function of [Find all References] will show no results. It is a little disappointing.

Michelle Matias @.***> 于2021年10月13日周三 上午4:53写道:

@KnewHow https://github.com/KnewHow We were able to reproduce this by first installing 1.6.0 and then updating to 1.7.0-insiders2 while a project was open.

A workaround to fix the issue for now is to reset the IntelliSense database. Perhaps the database got corrupted during the update. Could you try resetting the database and see if it fixes the issue on 1.7.0-insiders2? To reset the database, run the command C/C++: Reset IntelliSense Database from the VS Code command palette.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-cpptools/issues/8203#issuecomment-941534511, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFK2IEWBRFYBS4UEEGRGQF3UGSN5XANCNFSM5E7EGHKA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

michelleangela commented 3 years ago

But I find a phenomenon, when I open some projects that I used vscode to open them severals weeks ago, I must need to this C/C++: Reset IntelliSense Database operation, otherwise the function of [Find all References] will show no results. It is a little disappointing.

It seems that the cause of this issue is when there is an update to the C++ extension, then the IntelliSense database may get into a bad state. The workaround for now is to reset the IntelliSense database until we figure out how the database is getting into a bad state.