Jump to content
30960 posts in this topic

Recommended Posts

19 hours ago, Slice said:

Main pause was here


0:100  0:000  CloverX64 : Image base = 0x4BCAB000
2:682  2:582  
2:682  0:000  Now is 03.04.2021,  20:46:11 (GMT)
2:682  0:000  Starting Clover revision: 5132 (master, commit 6ff5bab8a) on American Megatrends EFI

and now


0:100  0:000  CloverX64 : Image base = 0x4BCAA000
0:162  0:062  
0:162  0:000  Now is 07.04.2021,  15:29:32 (GMT)
0:162  0:000  Starting Clover revision: 5132 (master, commit c11a90046) on American Megatrends EFI

 

This has nothing to do with the long time needed to construct device injection string.

This one was because of a stall to give time to gdb to connect:

    gBS->Stall(2500000); // to give time to gdb to connect

Mine is enclosed with #ifdef JIEF_DEBUG, but this line was duplicated outside the #ifdef.

I guess I did (commit 3252bf63e0ce7efb735e38d2fcaaf3b6ef0315e4) that when you tried to launch gdb.

 

By the way, does launching with gdb now works ?

1 hour ago, Jief_Machak said:

Can you have a backtrace on a panic ?

But I have no panic at this moment

Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
Reading symbols from /Users/sergey/src/CloverBootloader/Qemu/../Build/Clover/DEBUG_GCC53/X64/CLOVERX64.debug...
Remote debugging using localhost:9000
Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: 
0x000000007f5142d4 in ?? ()
Hardware read watchpoint 1: *0
Breakpoint 2 at 0x7dca2bfc: file /Users/sergey/src/CloverBootloader/rEFIt_UEFI/Platform/Posix/abort.cpp, line 37.
Continuing.

 

New commit

/Users/sergey/src/CloverBootloader/rEFIt_UEFI/cpp_unit_test/XString_test.cpp:1570:28: error: no matching function for call to 'XStringW::takeValueFrom(XString32&, int)'
 1570 |   xsw2.takeValueFrom(xsw, 1);
      |                            ^

 

Using gdb on command line is very hard but annoying. I almost never use it like that.

But having the backtrace in case of panic turn 1 or 2 hours searching with log into 5 minutes.

From the console you sent, it looks like it works. Put a panic anywhere and try :-)

Yes, I can see panic


Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: 
Breakpoint 2, panic_ (Python Exception <type 'exceptions.NameError'> Installation error: gdb.execute_unwinders function is missing: 
format=0x7ddbd006 "ххх вам", 
    va=0x7fcef598 "\030\032\376}")
    at /Users/sergey/src/CloverBootloader/rEFIt_UEFI/PlatformEFI/posix/abort.cpp:37
37	  egSetGraphicsModeEnabled(false);
(gdb) 

But I see no where it happened. I inserted panic("ххх вам") into main.cpp.

/Users/Desktop/CloverBootloader/rEFIt_UEFI/cpp_unit_test/MacOsVersion_test.cpp: In function 'BOOLEAN IsOSValid_OLD(const XString8&, const XString8&)':
/Users/Desktop/CloverBootloader/rEFIt_UEFI/cpp_unit_test/MacOsVersion_test.cpp:78:21: error: 'XStringArray_<XString8, XString8Array>::XStringClass' {aka 'class XString8'} has no member named 'equalIC'; did you mean 'isEqualIC'?
   78 |       if ( osToc[1].equalIC("x") ) return true;
      |                     ^~~~~~~
      |                     isEqualIC
/Users/Desktop/CloverBootloader/rEFIt_UEFI/cpp_unit_test/MacOsVersion_test.cpp:96:30: error: 'XStringArray_<XString8, XString8Array>::XStringClass' {aka 'class XString8'} has no member named 'equalIC'; did you mean 'isEqualIC'?
   96 |                  && osToc[2].equalIC("x") ) {
      |                              ^~~~~~~
      |                              isEqualIC
/Users/Desktop/CloverBootloader/rEFIt_UEFI/cpp_unit_test/MacOsVersion_test.cpp:105:30: error: 'XStringArray_<XString8, XString8Array>::XStringClass' {aka 'class XString8'} has no member named 'equalIC'; did you mean 'isEqualIC'?
  105 |                  && osToc[2].equalIC("x") == 0 ) {
      |                              ^~~~~~~
      |                              isEqualIC
At global scope:
cc1plus: note: unrecognized command-line option '-Wno-incompatible-ms-struct' may have been intended to silence earlier diagnostics
make: *** [/Users/Desktop/CloverBootloader/Build/Clover/RELEASE_GCC53/X64/rEFIt_UEFI/refit/OUTPUT/cpp_unit_test/MacOsVersion_test.obj] Error 1


build.py...
 : error 7000: Failed to execute command
    make tbuild [/Users/Desktop/CloverBootloader/Build/Clover/RELEASE_GCC53/X64/rEFIt_UEFI/refit]


build.py...
 : error F002: Failed to build module
    /Users/Desktop/CloverBootloader/rEFIt_UEFI/refit.inf [X64, GCC53, RELEASE]

- Failed -
Build end time: 08:31:03, Apr.11 2021
Build total time: 00:01:11

 

30 minutes ago, Jief_Machak said:

Could try this and tell me how many "step" (you'll see on the screen) you went through ? CloverX64-2021-04-11-12-43-57-fe26ba9-dirty-jief.zip

6 steps in my case

2021-4-11_10-12_BOOTX64.EFI.log

Edited by yapan4
  • Like 1

@everyone : I'm soon to switch to a new XML parser in Clover. To avoid regression, I made a "mass testing" program that'll find and read all the config.plist from your hard drive, read it with the old (current parser), read it with the new parser and compare. If there is a difference, the program stops and propose that you send me that config.plist, so I can run here and find why me new parser doesn't read the exact same as the current one.

NOTE : the program doesn't write anything, doesn't communicate on the internet, doesn't send anything over the internet...

 

The goal is to read the maximum possible different config.plist. Especially your old, forgotten ones buried in an archived folder... So before running, plug all your external hard drives and usb stick if they contains old config.plist !

 

To download this test program, download 3 files in the same location :

https://github.com/jief666/CloverCommits/blob/master/CloverX64TestNewParser

https://github.com/jief666/CloverCommits/blob/master/libgcc_s.1.dylib

https://github.com/jief666/CloverCommits/blob/master/libstdc%2B%2B.6.dylib

 

do "chmod a+x [your path]/CloverX64TestNewParser" if needed.

and run this file.

 

At the end, if you have :

"No parsing bug detected."

, just tell me.

 

If you have something like : 

"Please send the file '[path of clover config file]/[filename].plist' as is to me. DO NOT modify the file please, or I won't catch that bug in my new parser. Thanks."

 send me the file "[path of clover config file]/[filename].plist", please.

 

Even if you're not comfortable with command line, I'm willing to assist so we can really avoid regression/change of behavior when switching to this new parser.

 

Thanks for your contribution.

×
×
  • Create New...