[dpdk-dev] Generating Debug information in Windows using Clang (PDB files)
bruce.richardson at intel.com
Tue May 21 15:52: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:
> >> 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%7Cea97cb9cae684d72bbed08d6ddc57192%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636940237422999520&sdata=2PxSjEyx%2BXatdDKMtVcXFlWQ5jnBM9nK2782jnRg1BA%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.
> 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
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.
More information about the dev