Breakpoint

Breakpoint (zarážka, bod přerušení) je v informatice místo, kde dojde k zastavení vykonávání počítačového programu. Používá se v debuggeru při ladění, aby mohl programátor provést inspekci běhového prostředí (registry procesoru, operační paměť, logy, soubory atd.) a zjistil, zda program funguje podle očekávání. V praxi se breakpoint často kombinuje podmínkami, které určují, kdy by měl být program zastaven.

Breakpointy vynalezla programátorka Betty Holberton při práci s ENIACem, jedním z prvních digitálních počítačů.[1] V původním návrhu ENIACu byl tok programu řízen přepojováním kabelů z jedné jednotky do jiné. Aby se tok programu v určitém bodě zastavil, bylo potřeba kabel odstranit. Tento bod byl nazýván breakpoint.[2]

Formy breakpointu

Nejčastější forma přerušení programu je taková, kde je program zastaven na programátorem předem stanovené strojové instrukci. Označuje se jako zastavení na instrukci (anglicky instruction breakpoint). Někdy se pro zastavení vykonávání programu používají podmínky, které jsou vázány na čtení nebo zápis do určitého místa v operační paměti, které označujeme jako podmíněné zastavení (anglicky conditional breakpoint), data breakpoint, nebo watchpoint. Breakpointy mohou být také použity k přerušení v určitém čase, nebo při stisku klávesy atd.

Hardwarová implementace

Mnoho procesorů obsahuje pro breakpointy hardwarovou podporu (typicky přímo v procesoru pro přerušení na instrukci nebo na data). Například instrukční sada architektury x86 poskytuje hardwarovou podporu breakpointů pomocí ladících registrů. Hardwarová podpora může obsahovat určitá omezení, například nepovolí zarážky na instrukcích nacházejících se ve větvích zpoždění (branch delay slot) při proudovém zpracování. Tento druh omezení je dán mikroarchitekturou daného procesoru.

Softwarová implementace

Pokud není k dispozici hardwarová podpora, musí debugger realizovat breakpoint softwarově. Pro zastavení na dané instrukci se jednoduše nahrazuje strojová instrukce v místě breakpointu jinou strojovou instrukcí, která může být:

  • pokynem, který volá debugger přímo (např. systémové volání), nebo
  • neplatnou instrukcí, která způsobí záměrné přerušení (které je pak zachyceno debuggererem).

Další řešení:

  • Simulátor instrukční sady může podporovat podmíněné nebo nepodmíněné breakpointy vložením vhodné podmínky v rámci svého běžného programového cyklu – umožňuje tedy přirozeně neinvazivní zarážky (například u read-only programů).
  • Interpretované jazyky mohou efektivně použít stejný koncept uvedený výše ve svém programovém cyklu.


Související články

Reference

V tomto článku byl použit překlad textu z článku Breakpoint na anglické Wikipedii.

  1. ABBATE, Janet. Recoding gender : women's changing participation in computing. Cambridge, Mass.: MIT Press, 2012. 258 s. Dostupné online. ISBN 978-0262018067. S. 32. (anglicky) 
  2. HAIGH, Thomas. ENIAC in action : making and remaking the modern computer. Cambridge, MA: [s.n.], 2016. ISBN 978-0-262-03398-5. S. 153. (anglicky) 

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Breakpoint
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.