How to debug a font binary from the Terminal on Mac












0















I have created a demo font which I haven't been able to get working yet, running into this Browser error when I try to load it in the browser:



OTS parsing error: incorrect entrySelector for table directory


Specifically, this is an OpenType (or perhaps TrueType) font, not sure which one I chose fully yet. But that field entrySelector can be found on this Apple docs page, and this Microsoft cmap page, and also their OpenType font page. That's pretty much it. I've double and triple checked that I am setting the values according to the spec but it won't get fixed. So all I can think of now is to start inspecting the memory layout of the bits and see what could be going wrong. That's what this question is about: How to debug (any arbitrary program) on a Mac in the Terminal using just the binary and a hex viewer pretty much.



I've linked to a hexdump output of one of the older versions of the font to start. I would now like to somehow dig deeper into this so I can start inspecting the values in specific places in memory. For example, I could check all of the variables used in the calculation of entrySelector, and see what their values are stored in memory. Then try computing the value and see if it's the same. Stuff like that.



But I don't know where to begin with it. Without installing any other programs than just the hexdump I already have (ideally at least), I'm wondering what are some first steps I can take to debug this using the hex viewer.










share|improve this question







New contributor




user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    0















    I have created a demo font which I haven't been able to get working yet, running into this Browser error when I try to load it in the browser:



    OTS parsing error: incorrect entrySelector for table directory


    Specifically, this is an OpenType (or perhaps TrueType) font, not sure which one I chose fully yet. But that field entrySelector can be found on this Apple docs page, and this Microsoft cmap page, and also their OpenType font page. That's pretty much it. I've double and triple checked that I am setting the values according to the spec but it won't get fixed. So all I can think of now is to start inspecting the memory layout of the bits and see what could be going wrong. That's what this question is about: How to debug (any arbitrary program) on a Mac in the Terminal using just the binary and a hex viewer pretty much.



    I've linked to a hexdump output of one of the older versions of the font to start. I would now like to somehow dig deeper into this so I can start inspecting the values in specific places in memory. For example, I could check all of the variables used in the calculation of entrySelector, and see what their values are stored in memory. Then try computing the value and see if it's the same. Stuff like that.



    But I don't know where to begin with it. Without installing any other programs than just the hexdump I already have (ideally at least), I'm wondering what are some first steps I can take to debug this using the hex viewer.










    share|improve this question







    New contributor




    user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0








      I have created a demo font which I haven't been able to get working yet, running into this Browser error when I try to load it in the browser:



      OTS parsing error: incorrect entrySelector for table directory


      Specifically, this is an OpenType (or perhaps TrueType) font, not sure which one I chose fully yet. But that field entrySelector can be found on this Apple docs page, and this Microsoft cmap page, and also their OpenType font page. That's pretty much it. I've double and triple checked that I am setting the values according to the spec but it won't get fixed. So all I can think of now is to start inspecting the memory layout of the bits and see what could be going wrong. That's what this question is about: How to debug (any arbitrary program) on a Mac in the Terminal using just the binary and a hex viewer pretty much.



      I've linked to a hexdump output of one of the older versions of the font to start. I would now like to somehow dig deeper into this so I can start inspecting the values in specific places in memory. For example, I could check all of the variables used in the calculation of entrySelector, and see what their values are stored in memory. Then try computing the value and see if it's the same. Stuff like that.



      But I don't know where to begin with it. Without installing any other programs than just the hexdump I already have (ideally at least), I'm wondering what are some first steps I can take to debug this using the hex viewer.










      share|improve this question







      New contributor




      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I have created a demo font which I haven't been able to get working yet, running into this Browser error when I try to load it in the browser:



      OTS parsing error: incorrect entrySelector for table directory


      Specifically, this is an OpenType (or perhaps TrueType) font, not sure which one I chose fully yet. But that field entrySelector can be found on this Apple docs page, and this Microsoft cmap page, and also their OpenType font page. That's pretty much it. I've double and triple checked that I am setting the values according to the spec but it won't get fixed. So all I can think of now is to start inspecting the memory layout of the bits and see what could be going wrong. That's what this question is about: How to debug (any arbitrary program) on a Mac in the Terminal using just the binary and a hex viewer pretty much.



      I've linked to a hexdump output of one of the older versions of the font to start. I would now like to somehow dig deeper into this so I can start inspecting the values in specific places in memory. For example, I could check all of the variables used in the calculation of entrySelector, and see what their values are stored in memory. Then try computing the value and see if it's the same. Stuff like that.



      But I don't know where to begin with it. Without installing any other programs than just the hexdump I already have (ideally at least), I'm wondering what are some first steps I can take to debug this using the hex viewer.







      osx fonts binary hexdump






      share|improve this question







      New contributor




      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Jan 14 at 8:58









      user10869858user10869858

      234




      234




      New contributor




      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      user10869858 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "106"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          user10869858 is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f494377%2fhow-to-debug-a-font-binary-from-the-terminal-on-mac%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          user10869858 is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          user10869858 is a new contributor. Be nice, and check out our Code of Conduct.













          user10869858 is a new contributor. Be nice, and check out our Code of Conduct.












          user10869858 is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f494377%2fhow-to-debug-a-font-binary-from-the-terminal-on-mac%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to make a Squid Proxy server?

          第一次世界大戦

          Touch on Surface Book