From 909659b1ba09f5e34a57bfc9228e25ae84c67446 Mon Sep 17 00:00:00 2001 From: Younan Zhang Date: Mon, 2 Dec 2024 09:24:14 +0800 Subject: [PATCH] Build PDB file for Windows (#1678) This allows dumping human-readable backtrace symbols with line numbers. Also limit the maximum link jobs to 1 to avoid OOM in CI. --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +++ .github/workflows/autobuild.yaml | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index fc8693d..ae4d246 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -17,6 +17,9 @@ If you can, provide a minimal chunk of code that shows the problem (either inlin Please attach the clangd stderr log if you can. (Usually available from the editor) If possible, run with `--log=verbose` - note that the logs will include the contents of open files! If this is a crash, try to put `llvm-symbolizer` on your PATH per the troubleshooting instructions. +(If you're using Windows, place the associated PDB file (debug symbols) in the same directory as +clangd.exe and rerun again. For official releases, download symbols from the +[release page](https://github.com/clangd/clangd/releases).) **System information** diff --git a/.github/workflows/autobuild.yaml b/.github/workflows/autobuild.yaml index 701be7d..858f7e4 100644 --- a/.github/workflows/autobuild.yaml +++ b/.github/workflows/autobuild.yaml @@ -156,6 +156,8 @@ jobs: "-DCMAKE_CXX_COMPILER=cl" "-DLLVM_ENABLE_ZLIB=OFF" "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded" + "-DLLVM_ENABLE_PDB=ON" + "-DLLVM_PARALLEL_LINK_JOBS=1" grpc_cmake: >- "-DgRPC_MSVC_STATIC_RUNTIME=ON" binary_extension: ".exe" @@ -309,6 +311,12 @@ jobs: ${{ env.CLANGD_DIR }}/LICENSE.TXT ${{ env.CLANGD_DIR }}/bin/clangd${{ matrix.config.binary_extension }} ${{ env.CLANGD_DIR }}/lib/clang + - name: Archive clangd PDB symbols + if: matrix.config.name == 'windows' + run: > + 7z a clangd-pdb.7z -t7z -m0=LZMA2 + ${{ env.CLANGD_DIR }}/LICENSE.TXT + ${{ env.CLANGD_DIR }}/bin/clangd.pdb - name: Archive indexing-tools run: > 7z a indexing-tools.zip @@ -326,6 +334,16 @@ jobs: asset_name: clangd-${{ matrix.config.name }}-${{ env.TAG_NAME }}.zip asset_path: clangd.zip asset_content_type: application/zip + - name: Upload clangd PDB asset + if: matrix.config.name == 'windows' + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + with: + upload_url: ${{ env.UPLOAD_URL }} + asset_name: clangd-${{ matrix.config.name }}-${{ env.TAG_NAME }}-debug-symbols.7z + asset_path: clangd-pdb.7z + asset_content_type: application/zip - name: Upload indexing-tools asset uses: actions/upload-release-asset@v1.0.1 env: