microsoft / microsoft/vscode-cpptools

-exec awatch triggers unknown exceptions

Ouverte
#14,031 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug debugger help wanted
Langage dominant
TypeScript
Étoiles
6.2k
Forks
1.7k
Merge moyen
14 h 46 min
PR mergées (30 j)
61

Description

Environment
  • OS and version: Manjaro Linux 25
  • VS Code: 1.105.1
  • C/C++ extension: 1.28.3
  • OS and version of remote machine (if applicable): Windows 11 25H2
  • GDB / LLDB version: 16.3
Bug Summary and Steps to Reproduce

Bug Summary:

-exec awatch triggers unknown exceptions

#include <cstdio>
#include <string>
#include <windows.h>
int main(int argc, char *argv[]) {
    int a = 123;
    int b = a;
    a += 1;
    printf("Hello, World! %d\n", a);
}

Steps to reproduce:

  1. set breakpoint at line 6 then start debug windows exe
  2. -exec awatch a
  3. F10
Debugger Configurations
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.launchTargetPath}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerServerAddress": "private:2345",
            "preLaunchTask": "deploy",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "logging": {
                "engineLogging": true,
                "trace": true,
                "traceResponse": true
            }
        }
    ]
}
Debugger Logs
<--   C (next-18): {"command":"next","arguments":{"threadId":5148},"type":"request","seq":18}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7966) <-1036-exec-next --thread 1 --frame 0 \n"},"seq":536}
1: (7966) <-1036-exec-next --thread 1 --frame 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7967) ->1036^running\n"},"seq":538}
1: (7967) ->1036^running
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7967) ->*running,thread-id=\"all\"\n"},"seq":540}
1: (7967) ->*running,thread-id="all"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7968) 1036: elapsed time 1\n"},"seq":542}
1: (7968) 1036: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7970) ->(gdb)\n"},"seq":545}
1: (7970) ->(gdb)
--> R (next-18): {"type":"response","request_seq":18,"success":true,"command":"next","body":{},"seq":544}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7971) ->=breakpoint-modified,bkpt={number=\"4\",type=\"acc watchpoint\",disp=\"keep\",enabled=\"y\",what=\"a\",thread-groups=[\"i1\"],times=\"1\",original-location=\"a\"}\n"},"seq":548}
1: (7971) ->=breakpoint-modified,bkpt={number="4",type="acc watchpoint",disp="keep",enabled="y",what="a",thread-groups=["i1"],times="1",original-location="a"}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"\\n\"\n"},"seq":550}
1: (7974) ->~"\n"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"Thread 1 hit Hardware access (read/write) watchpoint 4: a\\n\"\n"},"seq":552}
1: (7974) ->~"Thread 1 hit Hardware access (read/write) watchpoint 4: a\n"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"\n"},"seq":553}

--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"\\n\"\n"},"seq":556}
1: (7974) ->~"\n"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"Thread 1 hit Hardware access (read/write) watchpoint 4: a\n"},"seq":559}
Thread 1 hit Hardware access (read/write) watchpoint 4: a
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"Value = 123\\n\"\n"},"seq":558}
1: (7974) ->~"Value = 123\n"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"\n"},"seq":562}

--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"0x00007ff670e3155e in main (argc=1, argv=0x7d90f0) at /home/allen/\\346\\241\\214\\351\\235\\242/test_cpp/main.cc:6\\n\"\n"},"seq":564}
1: (7974) ->~"0x00007ff670e3155e in main (argc=1, argv=0x7d90f0) at /home/allen/\346\241\214\351\235\242/test_cpp/main.cc:6\n"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"Value = 123\n"},"seq":566}
Value = 123
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->~\"6\\t    int b = a;\\n\"\n"},"seq":568}
1: (7974) ->~"6\t    int b = a;\n"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"0x00007ff670e3155e in main (argc=1, argv=0x7d90f0) at /home/allen/桌面/test_cpp/main.cc:6\n"},"seq":570}
0x00007ff670e3155e in main (argc=1, argv=0x7d90f0) at /home/allen/桌面/test_cpp/main.cc:6
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7974) ->*stopped,hw-awpt={number=\"4\",exp=\"a\"},reason=\"access-watchpoint-trigger\",value={new=\"123\"},frame={addr=\"0x00007ff670e3155e\",func=\"main\",args=[{name=\"argc\",value=\"1\"},{name=\"argv\",value=\"0x7d90f0\"}],file=\"/home/allen/\\346\\241\\214\\351\\235\\242/test_cpp/main.cc\",fullname=\"/home/allen/\\346\\241\\214\\351\\235\\242/test_cpp/main.cc\",line=\"6\",arch=\"i386:x86-64\"},thread-id=\"1\",stopped-threads=\"all\"\n"},"seq":572}
1: (7974) ->*stopped,hw-awpt={number="4",exp="a"},reason="access-watchpoint-trigger",value={new="123"},frame={addr="0x00007ff670e3155e",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7d90f0"}],file="/home/allen/\346\241\214\351\235\242/test_cpp/main.cc",fullname="/home/allen/\346\241\214\351\235\242/test_cpp/main.cc",line="6",arch="i386:x86-64"},thread-id="1",stopped-threads="all"
--> E (output): {"type":"event","event":"output","body":{"category":"stdout","output":"6\t    int b = a;\n"},"seq":574}
6	    int b = a;
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7975) <-1037-stack-list-frames --thread 1 0 1000\n"},"seq":576}
1: (7975) <-1037-stack-list-frames --thread 1 0 1000
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7976) ->1037^done,stack=[frame={level=\"0\",addr=\"0x00007ff670e3155e\",func=\"main\",file=\"/home/allen/\\346\\241\\214\\351\\235\\242/test_cpp/main.cc\",fullname=\"/home/allen/\\346\\241\\214\\351\\235\\242/test_cpp/main.cc\",line=\"6\",arch=\"i386:x86-64\"}]\n"},"seq":578}
1: (7976) ->1037^done,stack=[frame={level="0",addr="0x00007ff670e3155e",func="main",file="/home/allen/\346\241\214\351\235\242/test_cpp/main.cc",fullname="/home/allen/\346\241\214\351\235\242/test_cpp/main.cc",line="6",arch="i386:x86-64"}]
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7976) ->(gdb)\n"},"seq":580}
1: (7976) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7976) 1037: elapsed time 0\n"},"seq":582}
1: (7976) 1037: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7977) <-1038-var-delete var1\n"},"seq":584}
1: (7977) <-1038-var-delete var1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7977) ->1038^done,ndeleted=\"1\"\n"},"seq":586}
1: (7977) ->1038^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7978) ->(gdb)\n"},"seq":588}
1: (7978) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7978) 1038: elapsed time 1\n"},"seq":590}
1: (7978) 1038: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7979) <-1039-var-delete var2\n"},"seq":592}
1: (7979) <-1039-var-delete var2
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7979) ->1039^done,ndeleted=\"1\"\n"},"seq":594}
1: (7979) ->1039^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7979) ->(gdb)\n"},"seq":596}
1: (7979) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7979) 1039: elapsed time 0\n"},"seq":598}
1: (7979) 1039: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7979) <-1040-var-delete var3\n"},"seq":600}
1: (7979) <-1040-var-delete var3
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->1040^done,ndeleted=\"1\"\n"},"seq":602}
1: (7980) ->1040^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->(gdb)\n"},"seq":604}
1: (7980) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) 1040: elapsed time 0\n"},"seq":606}
1: (7980) 1040: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) <-1041-var-delete var4\n"},"seq":608}
1: (7980) <-1041-var-delete var4
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->1041^done,ndeleted=\"1\"\n"},"seq":610}
1: (7980) ->1041^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->(gdb)\n"},"seq":612}
1: (7980) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) 1041: elapsed time 0\n"},"seq":614}
1: (7980) 1041: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) <-1042-var-delete var5\n"},"seq":616}
1: (7980) <-1042-var-delete var5
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->1042^done,ndeleted=\"1\"\n"},"seq":618}
1: (7980) ->1042^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) ->(gdb)\n"},"seq":620}
1: (7980) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7980) 1042: elapsed time 0\n"},"seq":622}
1: (7980) 1042: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) <-1043-var-delete var6\n"},"seq":624}
1: (7981) <-1043-var-delete var6
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->1043^done,ndeleted=\"1\"\n"},"seq":626}
1: (7981) ->1043^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->(gdb)\n"},"seq":628}
1: (7981) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) 1043: elapsed time 0\n"},"seq":630}
1: (7981) 1043: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) <-1044-var-delete var7\n"},"seq":632}
1: (7981) <-1044-var-delete var7
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->1044^done,ndeleted=\"1\"\n"},"seq":634}
1: (7981) ->1044^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->(gdb)\n"},"seq":636}
1: (7981) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) 1044: elapsed time 0\n"},"seq":638}
1: (7981) 1044: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) <-1045-var-delete var8\n"},"seq":640}
1: (7981) <-1045-var-delete var8
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->1045^done,ndeleted=\"1\"\n"},"seq":642}
1: (7981) ->1045^done,ndeleted="1"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) ->(gdb)\n"},"seq":644}
1: (7981) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7981) 1045: elapsed time 0\n"},"seq":646}
1: (7981) 1045: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7982) Send Event AD7ExceptionEvent\n"},"seq":648}
1: (7982) Send Event AD7ExceptionEvent
--> E (stopped): {"type":"event","event":"stopped","body":{"reason":"exception","threadId":5148,"text":"Unknown stopping event","allThreadsStopped":true,"source":{"name":"main.cc","path":"/home/allen/桌面/test_cpp/main.cc","sources":[],"checksums":[]},"line":6,"column":1},"seq":650}
<--   C (threads-19): {"command":"threads","type":"request","seq":19}
--> R (threads-19): {"type":"response","request_seq":19,"success":true,"command":"threads","body":{"threads":[{"id":5148,"name":" [5148]"},{"id":4552,"name":" [4552]"}]},"seq":653}
<--   C (stackTrace-20): {"command":"stackTrace","arguments":{"threadId":5148,"startFrame":0,"levels":20},"type":"request","seq":20}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7993) <-1046-stack-list-arguments --thread 1 2 0 0\n"},"seq":656}
1: (7993) <-1046-stack-list-arguments --thread 1 2 0 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7994) ->1046^done,stack-args=[frame={level=\"0\",args=[{name=\"argc\",type=\"int\",value=\"1\"},{name=\"argv\",type=\"char **\",value=\"0x7d90f0\"}]}]\n"},"seq":658}
1: (7994) ->1046^done,stack-args=[frame={level="0",args=[{name="argc",type="int",value="1"},{name="argv",type="char **",value="0x7d90f0"}]}]
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7994) ->(gdb)\n"},"seq":660}
1: (7994) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (7994) 1046: elapsed time 0\n"},"seq":662}
1: (7994) 1046: elapsed time 0
--> R (stackTrace-20): {"type":"response","request_seq":20,"success":true,"command":"stackTrace","body":{"stackFrames":[{"id":1000,"name":"main(int argc, char ** argv)","source":{"name":"main.cc","path":"/home/allen/桌面/test_cpp/main.cc","sources":[],"checksums":[]},"line":6,"column":1,"instructionPointerReference":"0x00007ff670e3155e"}],"totalFrames":1},"seq":664}
<--   C (scopes-21): {"command":"scopes","arguments":{"frameId":1000},"type":"request","seq":21}
--> R (scopes-21): {"type":"response","request_seq":21,"success":true,"command":"scopes","body":{"scopes":[{"presentationHint":"locals","name":"Locals","variablesReference":1000,"expensive":false},{"presentationHint":"registers","name":"Registers","variablesReference":1001,"expensive":true}]},"seq":667}
<--   C (variables-22): {"command":"variables","arguments":{"variablesReference":1000},"type":"request","seq":22}
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8416) <-1047-stack-list-variables --thread 1 --frame 0 0\n"},"seq":670}
1: (8416) <-1047-stack-list-variables --thread 1 --frame 0 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8417) ->1047^done,variables=[{name=\"argc\",arg=\"1\"},{name=\"argv\",arg=\"1\"},{name=\"a\"},{name=\"b\"}]\n"},"seq":672}
1: (8417) ->1047^done,variables=[{name="argc",arg="1"},{name="argv",arg="1"},{name="a"},{name="b"}]
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8417) ->(gdb)\n"},"seq":674}
1: (8417) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8417) 1047: elapsed time 1\n"},"seq":676}
1: (8417) 1047: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8417) <-1048-var-create --thread 1 --frame 0  - * \"argc\"\n"},"seq":678}
1: (8417) <-1048-var-create --thread 1 --frame 0  - * "argc"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8418) ->1048^done,name=\"var9\",numchild=\"0\",value=\"1\",type=\"int\",thread-id=\"1\",has_more=\"0\"\n"},"seq":680}
1: (8418) ->1048^done,name="var9",numchild="0",value="1",type="int",thread-id="1",has_more="0"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8418) ->(gdb)\n"},"seq":682}
1: (8418) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8419) 1048: elapsed time 1\n"},"seq":684}
1: (8419) 1048: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8419) <-1049-var-create --thread 1 --frame 0  - * \"argv\"\n"},"seq":686}
1: (8419) <-1049-var-create --thread 1 --frame 0  - * "argv"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8420) ->1049^done,name=\"var10\",numchild=\"1\",value=\"0x7d90f0\",type=\"char **\",thread-id=\"1\",has_more=\"0\"\n"},"seq":688}
1: (8420) ->1049^done,name="var10",numchild="1",value="0x7d90f0",type="char **",thread-id="1",has_more="0"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8420) ->(gdb)\n"},"seq":690}
1: (8420) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8420) 1049: elapsed time 0\n"},"seq":692}
1: (8420) 1049: elapsed time 0
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8420) <-1050-var-create --thread 1 --frame 0  - * \"a\"\n"},"seq":694}
1: (8420) <-1050-var-create --thread 1 --frame 0  - * "a"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8421) ->1050^done,name=\"var11\",numchild=\"0\",value=\"123\",type=\"int\",thread-id=\"1\",has_more=\"0\"\n"},"seq":696}
1: (8421) ->1050^done,name="var11",numchild="0",value="123",type="int",thread-id="1",has_more="0"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8421) ->(gdb)\n"},"seq":698}
1: (8421) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8421) 1050: elapsed time 1\n"},"seq":700}
1: (8421) 1050: elapsed time 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8421) <-1051-var-create --thread 1 --frame 0  - * \"b\"\n"},"seq":702}
1: (8421) <-1051-var-create --thread 1 --frame 0  - * "b"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8422) ->1051^done,name=\"var12\",numchild=\"0\",value=\"1893982384\",type=\"int\",thread-id=\"1\",has_more=\"0\"\n"},"seq":704}
1: (8422) ->1051^done,name="var12",numchild="0",value="1893982384",type="int",thread-id="1",has_more="0"
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8422) ->(gdb)\n"},"seq":706}
1: (8422) ->(gdb)
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (8422) 1051: elapsed time 0\n"},"seq":708}
1: (8422) 1051: elapsed time 0
--> R (variables-22): {"type":"response","request_seq":22,"success":true,"command":"variables","body":{"variables":[{"name":"a","value":"123","type":"int","evaluateName":"a","variablesReference":0,"memoryReference":"0x000000000000007b"},{"name":"b","value":"1893982384","type":"int","evaluateName":"b","variablesReference":0,"memoryReference":"0x0000000070e3e0b0"},{"name":"argc","value":"1","type":"int","evaluateName":"argc","variablesReference":0,"memoryReference":"0x0000000000000001"},{"name":"argv","value":"0x7d90f0","type":"char **","evaluateName":"argv","variablesReference":1002,"memoryReference":"0x00000000007d90f0"}]},"seq":710}

Other Extensions

No response

Additional Information

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le problème avec le programme C++ fourni, la cible distante Windows, GDB 16.3 et la configuration de lancement affichée. Commencez par suivre la façon dont la commande -exec awatch a et la réponse access-watchpoint-trigger consignée sont traitées, puis vérifiez que l’exécution pas à pas ne produit plus l’exception inconnue signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp, typescript, vscode
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.