[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
Rob,
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?
Ron
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