[wix-devs] Black-Box Analysis of the "Unexpected PDB error while running build.cmd" Problem

Ron Martin cpuwzd at comcast.net
Sun Jul 11 20:13:02 PDT 2021


I think I saw some mention of switches to enable or disable 
multi-threaded building, but I haven't researched them
yet. Can I conclude that the multi-threading is contained within one or 
more of your "layers"? If so, since manual
building has such a positive effect, I'm assuming that the roblems arise 
because there is no mechanism to assure
that all 0f the multi-threaded building commenced within a layer is 
completed before the next layer can be processed.

Is the required mechanism simply missing? Is there any way to create our 
own such mechanism?


On 7/11/2021 12:36 PM, Rob Mensching wrote:
> Yes.
> That list defines the "layers" of the build.
> Build/rebuilding layers in order is a way to minimize the chance of hitting the Microsoft PDB error.
> Once a layer is built successfully, you don't have to go back and build it again until you change something in it.
> -----Original Message-----
> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Ron Martin via wix-devs
> Sent: Sunday, July 11, 2021 7:10 AM
> To: wix-devs <wix-devs at lists.wixtoolset.org>
> Cc: Ron Martin <cpuwzd at comcast.net>
> Subject: [wix-devs] Black-Box Analysis of the "Unexpected PDB error while running build.cmd" Problem
> build.cmd is executed from the wix4 folder. It takes an optional "release" parameter. It executes build_all.cmd from the wix4\src folder, passing along the optional "release" parameter.
> build_all.cmd is executed from the wix4\src folder. It takes an optional "release" parameter.
> The functionality of executing build.cmd from the wix4 folder with an optional "release" parameter can be achieved by executing a series of commands from the wix4\src folder. All but the first take an optional "release" parameter.
> We will refer to this series of commands as the primary command sequence.
>    * call build_init.cmd
>    * call dtf\dtf.cmd
>    * call internal\internal.cmd
>    * call libs\libs.cmd
>    * call api\api.cmd
>    * call burn\burn.cmd
>    * call wix\wix.cmd
>    * call ext\ext.cmd
>    * call test\test.cmd
> Hypothesis:
>      Executing the primary command sequence manually will accomplish the
>      desired goal without
>      generating an "unexpected PDB error" error. This will be considered
>      the quiescent state.
>      Furthermore, once quiescence has been reached, source code changes
>      can be made. Using
>      a list of the changed files, you can hopefully deduce a sub-sequence
>      of the primary command
>      sequence (notably not including the first command of the primary
>      command sequence) that will
>      restore quiescence.
> Example:
>      While working on Issue 5371, specifically in the area of C++ code
>      that implements custom
>      actions for the Util extension, I was repeatably able to return to
>      quiescence by executing
>      call ext\ext.cmd from wix4\src.
> I look forward to confirmation of my hypothesis and any simplification or improvement in our build process to which it might lead.
> Ron
> ____________________________________________________________________
> WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-devs mailing list