[llvm-dev] [MCJIT] messy call stack debug on x64 code in VisualStudio (original) (raw)

Vivien Millet via llvm-dev llvm-dev at lists.llvm.org
Sat Feb 29 14:56:13 PST 2020


Thank you David for forwarding my question. There is no official support for PDB with MCJIT, I developed one myself as part of a project and with the help of Zachary Turner, I will soon make it public on my github. (If the community is interested for an official support of a JIT-PDB feature, I can discuss with the persons in charge for helping with its development).

Anyway, to give a little more information on my issue :

Regards, Vivien

Le sam. 29 févr. 2020 à 23:29, David Blaikie <dblaikie at gmail.com> a écrit :

+Lang Hames for JIT things +Reid Kleckner <rnk at google.com> for Windows things

(in case they've got any thoughts on this issue - no guarantees though, I didn't even know there was any option to use PDBs through MCJIT & I know MCJIT is mostly unmaintained in favor of ORC JIT) On Sat, Feb 29, 2020 at 8:14 AM Vivien Millet via llvm-dev <_ _llvm-dev at lists.llvm.org> wrote:

Hi,

I'm using IR and MCJIT to compile a script language. I debug it with on the fly generated .pdb files. During debugging, almost each time I step into a function, I loose information about calling function inside the visual studio callstack view or I have a bunch of pure addresses in the callstack in between the current function and the calling function, for example : MyJit.dll!MyCurrentFunction() [0x1234567887654321] [0x8765432112345678] MyJit.dll!MyCallingFunction() ... It looks like visual studio get lost while walking up stack. Does anyone know where it could come from ? I have disabled all optimisations (among them is the omit-frame-pointer). I have seen this bug here : https://bugs.llvm.org/showbug.cgi?id=24233 which is quite similar but it is quite old now, and since the proposed patch has been posted, the code in RuntimeDyldCOFFX8664.h has changed and it is difficult for me to know if it has really been fixed since or not. Could it be related to the way IR CreateAlloca are used to build local variables ? Could it be related to missing informations inside the PDB ? (I don't know if there is stack related information inside PDB files to ensure good stack walking). Thanks. Vivien


LLVM Developers mailing list llvm-dev at lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200229/2e7633bf/attachment.html>



More information about the llvm-dev mailing list