Czy majac jakis dowolny bytecode z JVM mozna jakos okreslic czy znajduja sie w nim bledy ?
Ewentualnie da sie go jakos zdekompilować ?
zdekompilować można bardzo prosto > https://www.google.com/search?q=java+decompiler
Co rozumiesz przez pojęcie "błędy". Bytecode jeżeli był tworzony przez kompilator jest zapewne OK (pomijam błędy w transmisji w sieci, uszkodzenia plików itp.). Błędy biznesowe? Trzeba napisać testy.
- Rejestracja:ponad 12 lat
- Ostatnio:około 9 lat
- Postów:45
Hm, nigdzie nie moge znaleźć opisu od tej technicznej strony.
Jeżeli to herezje to z góry przepraszam:
Mamy kod w zwyklym pliku .java. Kompilowany jest do pliku .class to oczywiste. Kod "javovy" zamieniany jest na bytecode przez JVM i dopiero on jest kompilowany na kod maszynowy ?
Inaczej plik java trafia do kompilatora javac, który zmienia go na plik .class czyli bytecode. Tenże jest interpretowany przez maszynę wirtualną, która traktuje go jako swój własny kod maszynowy. By całość była wydajna mamy jeszcze takie coś jak JIT czyli dodatkowy kompilator, który działa w czasie pracy JVM i zamienia najczęściej wykonywane fragmenty kodu na kod maszynowy dla danego zestawu system+procek.
- Rejestracja:ponad 12 lat
- Ostatnio:około 9 lat
- Postów:45
A w którym momencie łapane są błędy ? Znaczy logiczne że w trakcie tworzenia bytecodu - pliku .class przez javac ale jak to się odbywa ? Tworzony jest po kroku bytecode i jeżeli jest błąd to error ?
Zdefiniuj błąd. Jeśli chodzi o błędy składniowe to tak. W czasie kompilacji parser sprawdza poprawność składniową kodu, a następnie odbywa się jeszcze analiza semantyczna, która służy do weryfikacji np. poprawności typów. Jeśli chodzi o błędy "w logice" to zazwyczaj pisze się testy, które weryfikują poprawność napisanego kodu uruchamiając go z przykłaowymi danymi.
- Rejestracja:ponad 12 lat
- Ostatnio:około 9 lat
- Postów:45
Mialem coś takiego na myśli: http://stackoverflow.com/questions/16947679/bytecode-compilation-errors jest podany bytecode i czy analizując go można zauważyć błąd - czy jest jakos zapisywany.
Dziękie wielkie za odpowiedzi.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.