Texture become empty after ReloadPackages, how to debug rendering code?

Problem

I use ReloadPackages to reload texture A from new pak files at runtime. UI that use texture A is refreshed perfectly, but Material B that use texture A is turning black. I use RenderDoc, and find my new texture A is not used by Material B.

Showcase

Following screen captures show one UI on the left side and one mesh on the right side.

Before ReloadPackages to reload texture A

After ReloadPackages to reload texture A

Following screen captures show renderdoc capture.

Before ReloadPackages to reload texture A

After ReloadPackages to reload texture A

Caution: Even though the texture info in bottom bar in RenderDoc is BlackAlphaOneDummy, it is an error of RenderDoc. I want to click the empty texture PS 6, and the texture info show the last clicked texture info except from PS 6. It may because PS 6 is empty, so clicking on empty doesn’t refresh texture info in bottom bar.
Does anyone have idea about how to debug?

In base pass draw call FMeshDrawCommand::SubmitDraw, I find it may be relevent with texture binding:

MeshDrawCommand.ShaderBindings.SetOnCommandList(RHICmdList, MeshPipelineState.BoundShaderState.AsBoundShaderState(), StateCache.ShaderBindings);

I add breakpoint in this function:

RHICmdList.SetShaderSampler(Shader, Parameter.BaseIndex, Sampler);
RHICmdList.SetShaderTexture(Shader, Parameter.BaseIndex, Texture);

But the breakpoint never hit. So strange.

But I find that RenderDoc give the function call that bind the texture:

Search PSSetShaderResources I find

D3D11_STATE_CACHE_INLINE void InternalSetShaderResourceView(uint32 ResourceIndex, ID3D11ShaderResourceView*& SRV)

Now I am going to search the usage of this function and hoping I can find the final relevent code about chossing texture from package or pointer to bind.

To do that, I add a breakpoint to PSSetShaderResources and find it also can’t be hit.

So strange looks like I can’t find a function to bind image to renderer.