Megosztás a következőn keresztül:


launch.vs.json sémahivatkozás (C++)

A Visual Studio 2017-ben és újabb verzióiban szinte bármilyen címtáralapú projektből nyithat meg és hozhat létre kódot megoldás vagy projektfájl nélkül. Ha nincs projekt- vagy megoldásfájl, megadhatja az egyéni buildelési feladatokat, és JSON-konfigurációs fájlokon keresztül indíthatja el a paramétereket. Ez a cikk ismerteti a launch.vs.json fájlt, amely hibakeresési paramétereket ad meg. További információ a "Mappa megnyitása" funkcióról: Kód fejlesztése a Visual Studióban projektek és megoldások nélkül.

A fájl létrehozásához kattintson a jobb gombbal egy végrehajtható fájlra a Megoldáskezelőben , és válassza a Hibakeresés és a Beállítások indítása lehetőséget. Válassza ki a projektnek leginkább megfelelő beállítást, majd az alábbi tulajdonságokat használva módosítsa a konfigurációt szükség szerint. A CMake-projektek hibakereséséről további információt a CMake-hibakeresési munkamenetek konfigurálása című témakörben talál.

Alapértelmezett tulajdonságok

Ingatlan Típus Leírás
args tömb Megadja az elindított programnak átadott parancssori argumentumokat.
buildConfigurations tömb Kulcs-érték pár, amely megadja a buildelési mód nevét a konfigurációk alkalmazásához. Például a Debug vagy Release és a kiválasztott összeállítási módnak megfelelően használandó konfigurációk.
currentDir karakterlánc Megadja a buildcél teljes könyvtárútvonalát. A rendszer automatikusan észleli a könyvtárat, kivéve, ha ez a paraméter be van állítva.
cwd karakterlánc A távoli rendszer könyvtárának teljes elérési útja, ahol a program futni fog. Alapértelmezett érték: "${debugInfo.defaultWorkingDirectory}".
debugType karakterlánc A hibakeresési módot a kód típusának megfelelően adja meg (natív, felügyelt vagy vegyes). A rendszer automatikusan észleli a módot, kivéve, ha ez a paraméter be van állítva. Engedélyezett értékek: "native", "managed", "mixed".
env tömb Megadja az egyéni környezeti változók kulcs-érték listáját. Például: env:{"myEnv":"myVal"}.
inheritEnvironments tömb Több forrásból öröklő környezeti változók készletét adja meg. Definiálhat néhány változót a fájlokban, például CMakeSettings.json vagy CppProperties.json elérhetővé teheti őket a környezet hibakereséséhez. Visual Studio 16.4: Adja meg a környezeti változókat célonként a env.VARIABLE_NAME szintaxis használatával. Ha egy változót meg akar szüntetni, üresre állítsa: "null".
name karakterlánc Az Indítási elem legördülő listában szereplő bejegyzés nevét adja meg.
noDebug Boolean Megadja, hogy hibakeresésre van-e szükség az elindított programban. A paraméter false alapértelmezett értéke, ha nincs megadva.
portName karakterlánc A port nevét adja meg egy futó folyamathoz való csatoláskor.
program karakterlánc A futtatandó hibakeresési parancs. Alapértelmezett érték: "${debugInfo.fullTargetPath}".
project karakterlánc A projektfájl relatív elérési útját adja meg. CMake-projekt hibakeresésekor általában nem kell módosítania ezt az értéket.
projectTarget karakterlánc Az project összeállításakor meghívott opcionális célértéket adja meg. A célnak meg kell egyeznie az Indítási elem legördülő listában szereplő névvel.
stopOnEntry Boolean Meghatározza, hogy a folyamat elindításakor és a hibakereső csatolásakor meg kell-e szakítani a folyamatot. Ennek a paraméternek az alapértelmezett értéke a következő false: .
remoteMachine karakterlánc Megadja annak a távoli gépnek a nevét, ahol a program elindult.
type karakterlánc Megadja, hogy a projekt egy dll vagy exe. Alapértelmezett érték: "exe".

C++ Linux-tulajdonságok

Ingatlan Típus Leírás
program karakterlánc A távoli gépen végrehajtható program teljes elérési útja. CMake használata esetén a makró ${debugInfo.fullTargetPath} használható a mező értékeként.
processId egész szám Nem kötelező folyamatazonosító a hibakereső csatlakoztatásához.
sourceFileMap objektum A hibakeresési motornak átadott választható forrásfájl-leképezések. Formátum: { "\<Compiler source location>": "\<Editor source location>" } vagy { "\<Compiler source location>": { "editorPath": "\<Editor source location>", "useForBreakpoints": true } }. Példa: { "/home/user/foo": "C:\\foo" } vagy { "/home/user/foo": { "editorPath": "c:\\foo", "useForBreakpoints": true } }. További információt a forrásfájl-térkép beállításai alatt talál.
additionalProperties karakterlánc Az egyik forrásfájl-térkép opció. (Lásd alább.)
MIMode karakterlánc A MI-kompatibilis konzol hibakeresőjének típusát jelzi, amelyhez a MIDebugEngine csatlakozni fog. Az engedélyezett értékek "gdb", "lldb".
args tömb A programnak átadott parancssori argumentumok.
environment tömb A program környezetéhez hozzáadandó környezeti változók. Példa: [ { "name": "squid", "value": "clam" } ].
targetArchitecture karakterlánc A hibakeresés architektúrája. A rendszer automatikusan észleli az architektúrát, kivéve, ha ez a paraméter be van állítva. Az engedélyezett értékek a következőkx86: , arm, arm64, mips, x64amd64. x86_64
visualizerFile karakterlánc A folyamat hibakereséséhez használandó .natvis fájl. Ez a beállítás nem kompatibilis a GDB szép nyomtatásával. Ellenőrizze "showDisplayString" , hogy ezt a beállítást használja-e.
showDisplayString Boolean Amikor meg van adva a visualizerFile, showDisplayString engedélyezi a megjelenítési karaktersorozatot. A beállítás bekapcsolása lassíthatja a teljesítményt a hibakeresés során.
remoteMachineName karakterlánc A gdb-t üzemeltető távoli Linux-gép és a hibakeresési program. Új Linux-gépek hozzáadásához használja a Connection Managert. CMake használata esetén a makró ${debugInfo.remoteMachineName} használható a mező értékeként.
miDebuggerPath karakterlánc A MI-kompatibilis hibakereső elérési útja (például gdb). Ha nincs meghatározva, először a PATH-ban keres hibakeresőt.
miDebuggerServerAddress karakterlánc A MI-kompatibilis hibakereső kiszolgáló hálózati címe, amelyhez csatlakozni szeretne. Példa: "localhost:1234".
setupCommands tömb Egy vagy több GDB/LLDB-parancs végrehajtása a mögöttes hibakereső beállításához. Példa: "setupCommands": [ { "text": "-enable-pretty-printing", "description": "Enable GDB pretty printing", "ignoreFailures": true }]. További információ: Telepítési parancsok indítása.
customLaunchSetupCommands tömb Ha meg van adva, ez az érték felülírja a cél indításához használt alapértelmezett parancsokat néhány más parancsra. Például a "-target-attach" használatával csatolhat egy célfolyamathoz. Az üres parancslista semmire nem cseréli az indítási parancsokat, ami akkor lehet hasznos, ha a hibakereső parancssori beállításként adja meg az indítási beállításokat. Példa: "customLaunchSetupCommands": [ { "text": "target-run", "description": "run target", "ignoreFailures": false }].
launchCompleteCommand karakterlánc A hibakereső teljes beállítása után végrehajtandó parancs, amely a célfolyamat futtatását eredményezi. Az engedélyezett értékek a következők: "exec-run", "exec-continue", "None". Az alapértelmezett érték az "exec-run".
debugServerPath karakterlánc Opcionálisan megadható a hibakeresési kiszolgáló indításához szükséges teljes elérési út. Alapértelmezés szerint null.
debugServerArgs karakterlánc Nem kötelező kiszolgálói hibakeresési argumentumok. Alapértelmezés szerint null.
filterStderr Boolean Keressen a stderr folyamában a kiszolgáló által indított mintára, és naplózza a stderr-t a hibakeresési kimenethez. Alapértelmezett érték: false.
coreDumpPath karakterlánc A megadott programhoz tartozó magfájl nem kötelező teljes elérési útja. Alapértelmezés szerint null.
externalConsole Boolean Ha igaz, egy konzol indul el a hibakereséshez. Ha falsenincs elindítva konzol. Ennek a beállításnak az alapértelmezett értéke a következő false: . Ezt a beállítást bizonyos esetekben technikai okokból figyelmen kívül hagyja a rendszer.
pipeTransport karakterlánc Ez az érték arra utasítja a hibakeresőt, hogy csatlakozzon egy távoli számítógéphez egy másik végrehajtható fájl pipe-ként való használatával, amely továbbítja a szabványos bemenetet/kimenetet a Visual Studio és a MI-kompatibilis hibakereső (például gdb) között. Engedélyezett értékek: egy vagy több csőátviteli beállítás.

debugInfo makrók

Az alábbi makrók információt nyújtanak a hibakeresési környezetről. Ezek hasznosak az alkalmazás hibakereséshez való elindításának testreszabásához.

Makró Leírás példa
addressSanitizerRuntimeFlags Az AddressSanitizer viselkedésének testreszabásához használt futtatási zászlók. A környezeti változó "ASAN_OPTIONS"beállítására szolgál. "env": {"ASAN_OPTIONS": "${addressSanitizerRuntimeFlags}:anotherFlag=true"}
defaultWorkingDirectory Állítsa be a könyvtárrészre "fullTargetPath". Ha a CMake változó VS_DEBUGGER_WORKING_DIRECTORY definiálva van, akkor defaultWorkingDirectory ehelyett az értékre van beállítva. "cwd":"${debugInfo.defaultWorkingDirectory}"
fullTargetPath A teljes elérési út a hibakeresés alatt álló binárishoz. "program": "${debugInfo.fullTargetPath}"
linuxNatvisPath A VS linux .natvis fájl teljes elérési útja a Windows rendszerben. Általában értékként "visualizerFile"jelenik meg.
parentProcessId Az aktuális Visual Studio-példány folyamatazonosítója. Paraméterként használt a shellexec esetén. Lásd a pipeTransport alábbi példáját.
remoteMachineId A távoli géppel való kapcsolat egyedi, numerikus azonosítója. Paraméterként használt a shellexec esetén. Lásd a pipeTransport alábbi példáját.
remoteWorkspaceRoot Linux-elérési út a munkaterület távoli másolatához. Adja meg a távoli gépen található fájlhelyeket. Például: "args": ["${debugInfo.remoteWorkspaceRoot}/Data/MyInputFile.dat"]
resolvedRemoteMachineName A cél távoli számítógép neve. "targetMachine" üzembehelyezési irányelvben szereplő érték
shellexecPath A Visual Studio által a távoli gép kapcsolatának kezeléséhez használt shellexec program elérési útja. Lásd a pipeTransport alábbi példáját
tty A gdb átirányítja a bemenetet és a kimenetet erre az eszközre a hibakeresés alatt álló program számára. A gdb (-tty) paramétereként használatos. Lásd a pipeTransport alábbi példáját.
windowsSubsystemPath A Windows alrendszer Linuxhoz tartozó példányának teljes elérési útja.

Az alábbi pipeTransport-példa bemutatja, hogyan használható a debugInfo fent definiált makrók némelyike:

"pipeTransport": {
    "pipeProgram": "${debugInfo.shellexecPath}",
    "pipeArgs": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}",
        "--tty=${debugInfo.tty}"
    ],
    "pipeCmd": [
        "/s",
        "${debugInfo.remoteMachineId}",
        "/p",
        "${debugInfo.parentProcessId}",
        "/c",
        "${debuggerCommand}"
    ]
}

C++ Windows távoli hibakeresés és tulajdonságok üzembe helyezése

Alkalmazás hibakereséséhez és távoli gépen való üzembe helyezéséhez használható.

Ingatlan Típus Leírás
cwd karakterlánc A célobjektum munkakönyvtára a távoli gépen. CMake használata esetén a makró ${debugInfo.defaultWorkingDirectory} használható a mező értékeként. Az alapértelmezett érték a hibakeresési program/parancs könyvtára.
deploy karakterlánc Megadja az üzembe helyezendő további fájlokat vagy könyvtárakat. Például:
"deploy": {"sourcePath":"<Full path to source file/directory on host machine>", "targetPath":"<Full destination path to file/directory on target machine>"}
deployDirectory karakterlánc A távoli gépen az a hely, ahol a projektkimenetek automatikusan üzembe lesznek helyezve. Alapértelmezett érték: "C:\Windows Default Deploy Directory\<name of app>".
deployDebugRuntimeLibraries karakterlánc Megadja, hogy az aktív platformon telepítse-e a hibakeresési futtatókörnyezeti kódtárakat. Az alapértelmezett érték "true", ha az aktív konfigurációstípus "Debug".
deployRuntimeLibraries karakterlánc Megadja, hogy az aktív platform futtatókörnyezeti kódtárait üzembe kívánja-e helyezni. Alapértelmezés szerint "true", ha az aktív configurationType "MinSizeRel", "RelWithDebInfo", vagy "Release".
disableDeploy Boolean Megadja, hogy a fájlokat üzembe kell-e helyezni.
remoteMachineName karakterlánc Megadja annak a távoli ARM64 Windows-gépnek a nevét, amelyen a program elindult. Lehet a kiszolgáló neve vagy a távoli gép IP-címe.
authenticationType karakterlánc Megadja a távoli kapcsolat típusát. A lehetséges értékek a következők: "windows" és "none". Az alapértelmezett érték a "windows". Ennek az értéknek meg kell egyeznie a távoli gépen futó távoli hibakeresőn megadott hitelesítési beállítással.

Telepítési parancsok indítása

Használva a setupCommands tulajdonsággal:

Ingatlan Típus Leírás
text karakterlánc A futtatandó hibakereső parancs.
description karakterlánc A parancs nem kötelező leírása.
ignoreFailures Boolean Ha igaz, a parancs hibáit figyelmen kívül kell hagyni. Alapértelmezett érték: false.

Csőszállítási lehetőségek

Használva a pipeTransport tulajdonsággal:

Ingatlan Típus Leírás
pipeCwd karakterlánc A csővezetékre vonatkozó program munkakönyvtárának teljes elérési útja.
pipeProgram karakterlánc A teljesen minősített pipe parancs végrehajtása.
pipeArgs tömb A kapcsolat konfigurálásához a csőprogramnak átadott parancssori argumentumok.
debuggerPath karakterlánc A célgép hibakeresőjének teljes elérési útja, például /usr/bin/gdb.
pipeEnv objektum A csőprogramnak átadott környezeti változók.
quoteArgs Boolean Ha az egyes argumentumok karaktereket (például szóközöket vagy tabulátorokat) tartalmaznak, idézni kell? Ha false, a hibakereső parancs többé nem lesz automatikusan idézve. Az alapértelmezett érték true.

Forrásfájl térkép beállításai

Használja a sourceFileMap tulajdonsággal:

Ingatlan Típus Leírás
editorPath karakterlánc A forráskód helye, amelyet a szerkesztőnek meg kell találnia.
useForBreakpoints Boolean Töréspontok beállításakor ezt a forrásleképezést kell használni. Ha falsea töréspontok beállításához csak a fájlnevet és a sorszámot használja a rendszer. Ha true van megadva, a töréspontok csak akkor lesznek beállítva, amikor ez a forrástérképezés van használatban, a teljes fájlelérési úttal és a sorszámmal. Ellenkező esetben a rendszer csak a fájlnevet és a sorszámot használja a töréspontok beállításakor. Az alapértelmezett érték true.