如何构建JDK以能够在gdb中扩展宏?

时间:2019-06-17 11:43:13

标签: java c jvm gdb jvm-hotspot

我正在构建JDK12 fastdebug,并且遇到了用gdb列出函数源代码的问题。例如产生的输出list main的宏未展开。这是它的样子

(gdb) list main
//...
77      /*                                                                                                                                                                                                         
78       * Entry point.                                                                                                                                                                                            
79       */                                                                                                                                                                                                        
80      #ifdef JAVAW                                                                                                                                                                                               
81                                                                                                                                                                                                                 
82      char **__initenv;                                                                                                                                                                                          
83                                                                                                                                                                                                                 
84      int WINAPI                                                                                                                                                                                                 
85      WinMain(HINSTANCE inst, HINSTANCE previnst, LPSTR cmdline, int cmdshow)                                                                                                                                    
86      {                                                                                                                                                                                                          
87          int margc;                                                                                                                                                                                             
88          char** margv;                                                                                                                                                                                          
89          int jargc;                                                                                                                                                                                             
90          char** jargv;                                                                                                                                                                                          
91          const jboolean const_javaw = JNI_TRUE;                                                                                                                                                                 
92                                                                                                                                                                                                                 
93          __initenv = _environ;                                                                                                                                                                                  
94                                                                                                                                                                                                                 
95      #else /* JAVAW */                                                                                                                                                                                          
96      JNIEXPORT int                                                                                                                                                                                              
97      main(int argc, char **argv)                                                                                                                                                                                
98      {                                                                                                                                                                                                          
99          int margc;                                                                                                                                                                                             
100         char** margv;                                                                                                                                                                                          
101         int jargc;                                                                                                                                                                                             
102         char** jargv;                                                                                                                                                                                          
103         const jboolean const_javaw = JNI_FALSE;                                                                                                                                                                
104     #endif /* JAVAW */                                                                                                                                                                                         

我正在Linux上运行,希望摆脱gdb中所有这些与Windows相关的宏混乱。

我使用bash configure --enable-debug --with-native-debug-symbols=internalmake CONF=fastdebug images进行配置。

如何使其扩展为gdb?也许还有其他选项可以配置以指定?

0 个答案:

没有答案