{"id":46,"date":"2006-10-24T01:47:30","date_gmt":"2006-10-24T01:47:30","guid":{"rendered":"https:\/\/driverentry.com.br\/en\/2006\/10\/24\/serial-killers\/"},"modified":"2026-07-24T18:39:17","modified_gmt":"2026-07-24T18:39:17","slug":"serial-killers","status":"publish","type":"post","link":"https:\/\/driverentry.com.br\/en\/2006\/10\/24\/serial-killers\/","title":{"rendered":"Serial Killers"},"content":{"rendered":"<div style=\"text-align: right;\"><a href=\"https:\/\/driverentry.com.br\/2006\/10\/24\/serial-killers\/\"><img loading=\"lazy\" decoding=\"async\" title=\"Em Portugu\u00eas\" src=\"https:\/\/driverentry.com.br\/en\/wp-content\/uploads\/2026\/07\/br.gif\" alt=\"\" width=\"21\" height=\"19\" \/><\/a><\/div>\n<p>There&#8217;s no doubt, they&#8217;re really giving up producing serial ports on notebooks and desktops. In  this post, I will talk about some problems we encounter when debugging that driver that only reproduces the issue on that machine that has no serial  ports. What alternatives do we have with this regard?<\/p>\n<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 10px 0px;\" src=\"https:\/\/driverentry.com.br\/en\/wp-content\/uploads\/2026\/07\/dim_e510_back.jpg\" border=\"0\" alt=\"\" \/><\/p>\n<p>This month new computers have arrived here in the company.\u00a0In these machines, we put some of our products in beta version.\u00a0For any reason, only on new machines one of our drivers was not working as it should.\u00a0As the quotes of the programmer&#8217;s code of ethics, the blame is on the trainee who did the tests until otherwise could be proved.\u00a0After several unsuccessful attempts to discover what was happening, I had no doubts, let&#8217;s debug it. Avoiding moving the victim to my desk to connect the serial cable, I decided to install <a href=\"http:\/\/en.wikipedia.org\/wiki\/Softice\">SoftIce<\/a>.\u00a0But life is a surprise box and we got a nice <a href=\"http:\/\/en.wikipedia.org\/wiki\/Bsod\">BSOD<\/a> when SoftIce was\u00a0started.\u00a0Wow!\u00a0This is rare, but it happens.\u00a0In these cases, we don&#8217;t have much choice; we really have to use Windbg.\u00a0The PCs we got were Dell Dimension 5150 model.\u00a0Take a look at its cabinet\u00a0back in the picture and answer quickly: where is the serial port?\u00a0That&#8217;s it, there is none. By consulting the manufacturer&#8217;s Web site, we found that the computer had 8 USB ports but had neither a parallel nor a serial port.<\/p>\n<p>At this moment, we made a circle and talk all together: &#8220;Oh God, what do we do now?&#8221; Some issues that happen in real machines are also reproduced in virtual ones, especially if the driver you are developing is a filter or a driver that does not deal directly with the hardware. Just for a test, we installed <a href=\"http:\/\/en.wikipedia.org\/wiki\/Vmware\">VMware<\/a> on a new machine and fortunately the problem was reproduced.\u00a0That&#8217;s one of those occasions that we get happy when the problem appears.\u00a0Thereafter, I just used the old trick about having\u00a0virtual serial port\u00a0in a VM and redirect the data stream to a named pipe.\u00a0This could become a post. \ud83d\ude09<\/p>\n<p>Well, after connecting the debugger, having the break-point set, it did not take long to find the problem, generating a new version, testing, making it to work and live happily ever after.\u00a0But not always the history is solved with these few steps.\u00a0Some virtual machines do not support USB devices.\u00a0Even VMware that offers this feature still does not support human interface devices (HID) like USB keyboards and mice.\u00a0Not to mention the psychological and esoteric issues involving <em>race conditions<\/em> and\/or a good joint action with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Murphy%27s_law\">Murphy<\/a>.\u00a0What can we do in these cases besides sitting and crying?<\/p>\n<p>Fortunately, technology at the service of humanity predicted situations like these. In these cases, we traditionally\u00a0have two alternatives:<\/p>\n<p>1) Describe the bug you want to delete on a sheet of paper.\u00a0It is recommended that this description has sections like &#8220;Go away strange bug &#8230;&#8221;.\u00a0Sew a piece of paper inside a frog&#8217;s mouth and positive thinking in solving the problem; throw the frog into a river without seeing where it would fell.\u00a0After seven days, do a &#8220;Rebuild All&#8221; in your project (A reboot before the build is recommended).\u00a0If the problem persists, repeat the steps. Formatting the machine helps to remove bad fluids and scare evil and haunt spirits away that torment your code.\u00a0Consult a software healer\u00a0for best results.<\/p>\n<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 10px 0px;\" src=\"https:\/\/driverentry.com.br\/en\/wp-content\/uploads\/2026\/07\/firewire_pci.jpg\" border=\"0\" alt=\"\" \/><\/p>\n<p>2) Use a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Firewire\">FireWire<\/a> card and make a Windbg\u00a0connection using an IEEE 1394 cable.\u00a0This option is only available if the machine being debugged is a Windows XP or higher.\u00a0These cards are installed on your PCI or PCMCIA bus. I did not have any chance of using this connection type to debug a machine, but it is certainly very fast and comfortable, since the data is transmitted at a rate of up to 400Mbps.<\/p>\n<p><strong>Can I use one of those famous serial ports to USB converters that are sold at <\/strong><a href=\"http:\/\/www.portaldasantaifigenia.com.br\/\"><strong>Santa Ifigenia<\/strong><\/a><strong>? <\/strong>Although it&#8217;s not required to install a driver on your system, these adapters use drivers to work. All USB stack is mounted to make these devices work.\u00a0On a machine that is being debugged in Kernel, all the code that deals with serial communication or firewire is hard-coded in the system and it works with fixed standard addresses .\u00a0These adapters can be used without problems by the debugger machine, but not by the debugee one.<\/p>\n<p><strong>What if I use a PCI multiport serial card?<\/strong> That depends on what I\/O\u00a0addresses and interrupts the card.\u00a0Normally these cards use different addresses of the standards in order to not to create any compatibility issues with I\/O addresses that probably pre-exist on the machine.\u00a0If the card offers the option of using standard addresses, there is no problem.<\/p>\n<p>Windows Vista will support Kernel Debug via USB 2.0 port, though some conditions are required. USB cable must be special for this purpose, the debugee computer\u00a0USB interface must support Kernel Debug, and last but not least, the debugger computer USB controller should be <em>Extended Host Controller Interface<\/em> (EHCI) compliant.<\/p>\n<p>If you are interested in acquiring IEEE 1394, remember that you must have, at least, two interfaces such that there is a link between the debugger and debugee machine. Although I have seen some lost comments on the Internet about FireWire x USB converter cables (for use in debugger machine), as far as I could see, they are electrically impossible to be built.\u00a0That&#8217;s because the entire protocol is different.\u00a0Whereas USB is a &#8220;Master x Slave&#8221;\u00a0protocol, FireWire is &#8220;Peer to Peer&#8221; one. It would require some intelligent hardware along the way to do all translation.<\/p>\n<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 10px 0px;\" src=\"https:\/\/driverentry.com.br\/en\/wp-content\/uploads\/2026\/07\/firewire_pcmcia.jpg\" border=\"0\" alt=\"\" \/><\/p>\n<p>The company I work for is acquiring these interfaces for PCMCIA FireWire in order to eliminate the problem of debugging customer&#8217;s\u00a0notebook \u00a0that is crippled serial ports.\u00a0I think soon we&#8217;ll give up the frog and all.\u00a0I will make some comparisons with the good old serial cable and give some news on this subject.<\/p>\n<p><br class=\"spacer_\" \/><\/p>\n<p><br class=\"spacer_\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There&#8217;s no doubt, they&#8217;re really giving up producing serial ports on notebooks and desktops. In this post, I will talk about some problems we encounter when debugging that driver that only reproduces the issue on that machine that has no serial ports. What alternatives do we have with this regard? This month new computers have [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":1,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/posts\/46\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/driverentry.com.br\/en\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}