# Frequently Asked Questions

If you have a question and cannot find it here, send us an email.

- ###### I keep getting the error "src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\Project.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS".

  This happens when both the compiler-generated .PDB file (C/C++ -> Output Files -> Program Database File Name) as well as the linker-generated .PDB file (Linker -> Debugging -> Generate Program Database File) are set to the same output file. In this case, the debugger will lock the .PDB file during debugging, while the compiler tries to write to the same file upon compilation.

  Please note that the .PDB file generated by the compiler is an intermediate file and not a build artefact. As such, it is best to leave the corresponding compiler option untouched. Furthermore, there have been reports of large projects suffering up to 4x longer link times (for incremental and full builds without using Live++) in cases where both compiler and linker wrote to the same .PDB file, so it is recommended to use separate files for compiler and linker PDBs.

- ###### The compiler keeps on reporting "src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\vc141.idb'; if multiple CL.EXE write to the same .PDB file, please use /FS".

  This happens when native Edit and Continue is enabled and the 'C/C++ -> General -> Debug Information Format -> Program Database for Edit and Continue (/ZI)' compiler option is used. Note that the Debug Information Format must be set to 'C7 compatible (/Z7)' or 'Program Database (/Zi)'.

- ###### Live++ reports "Instruction in function 'Name' is too short to install patch". What should I do?

  This is most likely caused by translation units that were not built with the correct compiler settings (missing /hotpatch in this case). In rare cases, you might be experiencing a compiler bug.

- ###### The log shows "Not enough space near function 'Name' at 'Address' to install patch". How do I fix this?

  You might be running into a linker bug.

- ###### Live++ reports "Cannot determine vcvars*.bat environment for compiler/linker 'Filename'". What do I need to change?

  When using the Visual Studio compiler or linker, a vcvars*.bat file needs to be invoked in order to set up the toolchain environment for subsequent compiling. Live++ automatically detects the toolchain that was used to build Live++-enabled applications and locates the corresponding vcvars*.bat file, as long as the relative paths of the default installation directory are kept intact.

  When using a custom toolchain or build system, the compiler (cl.exe) and linker (link.exe) are often kept in a non-default relative path structure, which makes finding the correct vcvars*.bat file harder. In this case, Live++ expects any of the following files in the same directory as the compiler or linker invoked:

  - vcvars64.bat
  - vcvarsamd64_x86.bat
  - vcvarsx86_amd64.bat
  - vcvars32.bat

  Note that you can supply your own files for setting up the compiler environment and need not copy Visual Studio's files, as long as the file in question is correctly named.

- ###### Live++ is unable to launch the compiler when trying to re-compile a file.

  Does your setup use remote/distributed builds? If so, please make sure to set the needed options in the Live++ UI, as described for e.g. FASTBuild.

- ###### The linker environment cannot be found by Live++. Which setting do I need to configure?

  Make sure to generate full PDBs (e.g. using /DEBUG:FULL) and not partial PDBs (e.g. using /DEBUG:FASTLINK).

- ###### Live++ does nothing when pressing the shortcut. What am I missing?

  First, make sure that the Live++ DLL has been loaded and enabled for the module (.EXE or .DLL) in question by calling one of the appropriate API functions.

  Second, remember to save your changes before pressing the shortcut. If Live++ still does nothing, it was unable to detect which translation units are part of your module. In this case, please check if your compiler and linker settings are correct.

  Third, ensure that Live++ can find all .PDB, .OBJ, .CPP and .H files it needs in order to work.

  If the issue still persists and you cannot figure out why Live++ is not working with your setup, please let us know.

- ###### I tried everything, but I cannot seem to get Live++ to work with my setup. How do I report this?

  Please contact us with a description of the problem you're experiencing, along with the log printed in the Live++ UI, and development and telemetry logs attached.

  In order to create these logs and populate them with meaningful information, please do the following:

  - Turn on "Enable Dev output" in the UI settings found under "Logging".
  - Turn on "Enable Telemetry output" in the UI settings found under "Logging".
  - Restart your application.
  - Take note of the path where log files are being stored (you should see "Creating log file at" statements in the Live++ UI).
  - Make some changes to your code.
  - Save your changes.
  - Press the Live++ shortcut and wait for compilation to finish.
  - Attach the generated log files to your email.