Debugging 如何在QtCreator 4.3.0中调试高半x86-64内核

Debugging 如何在QtCreator 4.3.0中调试高半x86-64内核,debugging,kernel,qt-creator,x86-64,Debugging,Kernel,Qt Creator,X86 64,在QtCreator4.3(基于Qt5.8)中调试高半x86-64内核时,我遇到了问题。问题是,任何指向设置了位63(如0xFFFF8000000000)的地址的指针都不会出现在变量列表中,并且不能在表达式计算器中使用。使用以前版本的QtCreator(基于Qt5.7和5.4),调试是可能的(有一些问题,但可能) 我很确定这是Qt Creator调试脚本中的错误/回归,但我不认为我会在他们的网站上注册来报告错误。我相当想找一种解决办法 我用它在Ubuntu下调试QEMU中的自定义内核,但这个问题

在QtCreator4.3(基于Qt5.8)中调试高半x86-64内核时,我遇到了问题。问题是,任何指向设置了位63(如0xFFFF8000000000)的地址的指针都不会出现在变量列表中,并且不能在表达式计算器中使用。使用以前版本的QtCreator(基于Qt5.7和5.4),调试是可能的(有一些问题,但可能)

我很确定这是Qt Creator调试脚本中的错误/回归,但我不认为我会在他们的网站上注册来报告错误。我相当想找一种解决办法

我用它在Ubuntu下调试QEMU中的自定义内核,但这个问题也会影响常规的基于Qt的应用程序。使用GDB(版本7.11.1)本身进行调试工作正常,但这是一件痛苦的事情

例如:

char *ptr = nullptr; // ptr is visible
ptr = (char *)0xFFFF800000000000; // ptr becomes invisible
ptr = (char *)0xABCD1234; // ptr becomes visible again
ptr = (char *)0x7FFFFFFFFFFFFFFF; // even here ptr is visible
ptr = (char *)0x8000000000000000; // but now it is invisible again

指针不能可见或不可见。它只是有一个价值。你指的是什么样的能见度?这是一个特殊的窗口吗?我说的是它在QtCreator的调试窗口(其中包含局部变量)中的可见性。