[llvm-dev] [CUDA] Lost debug information when compiling CUDA code
Madhur Amilkanthwar via llvm-dev
llvm-dev at lists.llvm.org
Wed Jun 14 04:12:36 PDT 2017
Try dumping .out file using cuobjdump and see if it has .debug_info section.
If it does not have then PTX compilation skipped debug information
generation.
If it does have then there is some other issue.
On Wed, Jun 14, 2017 at 4:35 PM, Yuanfeng Peng <yuanfengp at foxmail.com>
wrote:
> Yes, I've inspected all the intermediate IR files and source level
> information is present in them.
>
> ------------------ Original ------------------
> *From: * "Madhur Amilkanthwar";<madhur13490 at gmail.com>;
> *Send time:* Wednesday, Jun 14, 2017 5:03 PM
> *To:* "Yuanfeng Peng"<yuanfengp at foxmail.com>;
> *Cc:* "via llvm-dev"<llvm-dev at lists.llvm.org>;
> *Subject: * Re: [llvm-dev] [CUDA] Lost debug information when compiling
> CUDA code
>
> Is source level information present in generated IR files?
>
> On Wed, Jun 14, 2017 at 12:29 PM, Yuanfeng Peng via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi,
>>
>> I needed to debug some CUDA code in my project; however, although I used
>> -g when compiling the source code, no source-level information is available
>> in cuda-gdb or cuda-memcheck.
>>
>> Specifically, below is what I did:
>>
>> 1) For a CUDA file a.cu, generate IR files: clang++ -g -emit-llvm
>> --cuda-gpu-arch=sm_35 -c a.cu;
>> 2) Instrument the device code a-cuda-nvptx64-nvidia-cuda-sm_35.bc
>> (generated in the previous step), inserting a call to a hook function
>> before each device memory access. The hook function is defined in another
>> file, b.cu. Let's say we get a file named intrumented-a-device.bc after
>> this step;
>> 3) Generate IR files for b.cu: clang++ -g -emit-llvm
>> --cuda-gpu-arch=sm_35 -c b.cu;
>> 4) Link instrumented-a.device.bc with the device code generated for b.cu:
>> llvm-link intrumented-a-device.bc b-cuda-nvptx64-nvidia-cuda-sm_35.bc -o
>> ab-device.bc;
>> 5) Use llc, ptxas & fatbinary on ab-device.bc to get ab-device.ptx,
>> ab-device.o & ab-device.fatbin;
>> 6) Call clang again the generate the host object file ab.o, with
>> ab-device.o & ab-device.fatbin embedded;
>> 7) Link against libraries and get the final binary: a.out.
>>
>> The binary a.out fails with an exception I when run it; but when I try to
>> debug it with cuda-gdb or cuda-memcheck, no source information was
>> available. Why?
>>
>> Thanks!
>> Yuanfeng Peng
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>
>
> --
> *Disclaimer: Views, concerns, thoughts, questions, ideas expressed in this
> mail are of my own and my employer has no take in it. *
> Thank You.
> Madhur D. Amilkanthwar
>
>
--
*Disclaimer: Views, concerns, thoughts, questions, ideas expressed in this
mail are of my own and my employer has no take in it. *
Thank You.
Madhur D. Amilkanthwar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170614/dbb8542b/attachment.html>
More information about the llvm-dev
mailing list