[dpdk-dev] Generating Debug information in Windows using Clang (PDB files)

Adham Masarwah adham at mellanox.com
Tue May 21 16:33:36 CEST 2019


On Tue, May 21, 2019 at 01:41:06PM +0000, Adham Masarwah wrote:
> > 
> > >From: Bruce Richardson <bruce.richardson at intel.com>
> > >Sent: Tuesday, May 21, 2019 11:22 AM
> > >
> > >On Mon, May 20, 2019 at 07:02:22PM +0100, Menon, Ranjit wrote:
> > >>    Adham…
> > >> 
> > >>    I don’t think we debugged using clang compiled code for Hello world –
> > >>    mainly because it was only a “helloworld” application and we didn’t
> > >>    quite need any debugging!:-)
> > >> 
> > >> 
> > >>    I found this link:
> > >>    [1]https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fblog.llvm.org%2F2017%2F08%2Fllvm-on-windows-now-supports-pdb-debug&data=02%7C01%7Cadham%40mellanox.com%7Cd44c2914a2104176185008d6ddf39932%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636940435668687736&sdata=%2BXND%2Be8KTPd6CBligMrSlJzsV%2BrrxnHKjQvcClwpNDk%3D&reserved=0.
> > >>    html
> > >> 
> > >>    …which says to use the following:
> > >> 
> > >>     Here are two simple ways to test out this new functionality:
> > >>     1. Have clang-cl invoke lld automatically
> > >> 
> > >>         clang-cl -fuse-ld=lld -Z7 -MTd hello.cpp
> > >>     2. Invoke clang-cl and lld separately.
> > >> 
> > >>    clang-cl -c -Z7 -MTd -o hello.obj hello.cpp
> > >> 
> > >>    lld-link -debug hello.obj
> > >> 
> > >>    Can you try it with just the -Z7 option?
> > >> 
> > >> 
> > >>    I’m also adding some persons from Microsoft to this thread, hoping they
> > >>    can help…
> > >> 
> > >> 
> > >>    +Harini +Omar +Jeffrey
> > >> 
> > >> 
> > >>    ranjit m.
> > >> 
> > >Part of the issue may be that we use clang, rather than clang-cl on windows.
> > >
> > >/Bruce
> > 
> > I did a small test to check clang vs clang-cl, the compiled binary and the PDB file from the Clang-cl seems working fine in WinDbg.
> > The problem we have that the meson.build files are not compatible with clang-cl, and the meson build command is failing.
> > This is the first error:
> > config\x86\meson.build:23:1: ERROR: Problem encountered: SSE4.2 instruction set is required for DPDK.
> > Please set the machine type to "nehalem" or "corei7" or higher value
> > 
> > /Adham
> Yes, the clang-cl compiler (like msvc) does not offer the flags we need to control the exact output microarchitecture. It also uses completely different flag formats for things like warnings etc, which is why we need to use clang instead.
> 
> /Bruce
In this case we should find a solution to open the debug ability since we will need it for sure.
What can be done, who can help causing clang generates good files ? 


More information about the dev mailing list