What does “.line” mean in smali code syntax? (Android-Smali Code)












8















Please take a look at this question



Decompiled smali code contains things like .line 3 or .line 7.



I cannot understand what .line is supposed to be, please elaborate on the usage.










share|improve this question





























    8















    Please take a look at this question



    Decompiled smali code contains things like .line 3 or .line 7.



    I cannot understand what .line is supposed to be, please elaborate on the usage.










    share|improve this question



























      8












      8








      8


      1






      Please take a look at this question



      Decompiled smali code contains things like .line 3 or .line 7.



      I cannot understand what .line is supposed to be, please elaborate on the usage.










      share|improve this question
















      Please take a look at this question



      Decompiled smali code contains things like .line 3 or .line 7.



      I cannot understand what .line is supposed to be, please elaborate on the usage.







      java android mobile syntax smali






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited May 23 '17 at 12:32









      Community

      11




      11










      asked Aug 16 '13 at 13:05









      Behzad GhBehzad Gh

      9517




      9517
























          2 Answers
          2






          active

          oldest

          votes


















          14














          .line n markers are used for debugging and stacktraces. When an exception goes uncaught, or the stacktrace needs to be filled in, the line number is taken from the .line statement. If this were missing, then stacktraces would lack line numbers.






          share|improve this answer
























          • can i remove .line markers when i want to recompile smali codes ?

            – Behzad Gh
            Aug 16 '13 at 13:11











          • @user2525702 As per what I have already stated, yes, but debugging will be harder.

            – Andrey Akhmetov
            Aug 16 '13 at 13:16






          • 1





            @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

            – zapl
            Aug 16 '13 at 13:29













          • @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

            – Simon
            Aug 16 '13 at 15:30






          • 2





            @Simon its useful when you inspect closed source application for potential malware code in them.

            – DevZer0
            Mar 1 '14 at 11:48



















          0














          Almost everything in the smali language has a direct analogue in the dalvik bytecode or dex format.



          The .line directive in particular corresponds to the position entries emitted by the state machine that the debug_info_item defines, as specified at https://source.android.com/devices/tech/dalvik/dex-format.






          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            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: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            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
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f18274031%2fwhat-does-line-mean-in-smali-code-syntax-android-smali-code%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            14














            .line n markers are used for debugging and stacktraces. When an exception goes uncaught, or the stacktrace needs to be filled in, the line number is taken from the .line statement. If this were missing, then stacktraces would lack line numbers.






            share|improve this answer
























            • can i remove .line markers when i want to recompile smali codes ?

              – Behzad Gh
              Aug 16 '13 at 13:11











            • @user2525702 As per what I have already stated, yes, but debugging will be harder.

              – Andrey Akhmetov
              Aug 16 '13 at 13:16






            • 1





              @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

              – zapl
              Aug 16 '13 at 13:29













            • @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

              – Simon
              Aug 16 '13 at 15:30






            • 2





              @Simon its useful when you inspect closed source application for potential malware code in them.

              – DevZer0
              Mar 1 '14 at 11:48
















            14














            .line n markers are used for debugging and stacktraces. When an exception goes uncaught, or the stacktrace needs to be filled in, the line number is taken from the .line statement. If this were missing, then stacktraces would lack line numbers.






            share|improve this answer
























            • can i remove .line markers when i want to recompile smali codes ?

              – Behzad Gh
              Aug 16 '13 at 13:11











            • @user2525702 As per what I have already stated, yes, but debugging will be harder.

              – Andrey Akhmetov
              Aug 16 '13 at 13:16






            • 1





              @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

              – zapl
              Aug 16 '13 at 13:29













            • @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

              – Simon
              Aug 16 '13 at 15:30






            • 2





              @Simon its useful when you inspect closed source application for potential malware code in them.

              – DevZer0
              Mar 1 '14 at 11:48














            14












            14








            14







            .line n markers are used for debugging and stacktraces. When an exception goes uncaught, or the stacktrace needs to be filled in, the line number is taken from the .line statement. If this were missing, then stacktraces would lack line numbers.






            share|improve this answer













            .line n markers are used for debugging and stacktraces. When an exception goes uncaught, or the stacktrace needs to be filled in, the line number is taken from the .line statement. If this were missing, then stacktraces would lack line numbers.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Aug 16 '13 at 13:06









            Andrey AkhmetovAndrey Akhmetov

            29.6k45988




            29.6k45988













            • can i remove .line markers when i want to recompile smali codes ?

              – Behzad Gh
              Aug 16 '13 at 13:11











            • @user2525702 As per what I have already stated, yes, but debugging will be harder.

              – Andrey Akhmetov
              Aug 16 '13 at 13:16






            • 1





              @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

              – zapl
              Aug 16 '13 at 13:29













            • @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

              – Simon
              Aug 16 '13 at 15:30






            • 2





              @Simon its useful when you inspect closed source application for potential malware code in them.

              – DevZer0
              Mar 1 '14 at 11:48



















            • can i remove .line markers when i want to recompile smali codes ?

              – Behzad Gh
              Aug 16 '13 at 13:11











            • @user2525702 As per what I have already stated, yes, but debugging will be harder.

              – Andrey Akhmetov
              Aug 16 '13 at 13:16






            • 1





              @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

              – zapl
              Aug 16 '13 at 13:29













            • @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

              – Simon
              Aug 16 '13 at 15:30






            • 2





              @Simon its useful when you inspect closed source application for potential malware code in them.

              – DevZer0
              Mar 1 '14 at 11:48

















            can i remove .line markers when i want to recompile smali codes ?

            – Behzad Gh
            Aug 16 '13 at 13:11





            can i remove .line markers when i want to recompile smali codes ?

            – Behzad Gh
            Aug 16 '13 at 13:11













            @user2525702 As per what I have already stated, yes, but debugging will be harder.

            – Andrey Akhmetov
            Aug 16 '13 at 13:16





            @user2525702 As per what I have already stated, yes, but debugging will be harder.

            – Andrey Akhmetov
            Aug 16 '13 at 13:16




            1




            1





            @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

            – zapl
            Aug 16 '13 at 13:29







            @user2525702 .line is the line in the original Java sourcecode that translates to the following part of smali. If you remove them you probably don't get nice Exception stacktraces like at com.foo.bar.Bar(Bar.java:85)

            – zapl
            Aug 16 '13 at 13:29















            @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

            – Simon
            Aug 16 '13 at 15:30





            @user2525702 But why do you want to do this? Simply recompile the original source with the modifications.

            – Simon
            Aug 16 '13 at 15:30




            2




            2





            @Simon its useful when you inspect closed source application for potential malware code in them.

            – DevZer0
            Mar 1 '14 at 11:48





            @Simon its useful when you inspect closed source application for potential malware code in them.

            – DevZer0
            Mar 1 '14 at 11:48













            0














            Almost everything in the smali language has a direct analogue in the dalvik bytecode or dex format.



            The .line directive in particular corresponds to the position entries emitted by the state machine that the debug_info_item defines, as specified at https://source.android.com/devices/tech/dalvik/dex-format.






            share|improve this answer






























              0














              Almost everything in the smali language has a direct analogue in the dalvik bytecode or dex format.



              The .line directive in particular corresponds to the position entries emitted by the state machine that the debug_info_item defines, as specified at https://source.android.com/devices/tech/dalvik/dex-format.






              share|improve this answer




























                0












                0








                0







                Almost everything in the smali language has a direct analogue in the dalvik bytecode or dex format.



                The .line directive in particular corresponds to the position entries emitted by the state machine that the debug_info_item defines, as specified at https://source.android.com/devices/tech/dalvik/dex-format.






                share|improve this answer















                Almost everything in the smali language has a direct analogue in the dalvik bytecode or dex format.



                The .line directive in particular corresponds to the position entries emitted by the state machine that the debug_info_item defines, as specified at https://source.android.com/devices/tech/dalvik/dex-format.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 24 '18 at 11:23









                Community

                11




                11










                answered Aug 16 '13 at 16:21









                JesusFrekeJesusFreke

                15.5k44659




                15.5k44659






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • 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%2fstackoverflow.com%2fquestions%2f18274031%2fwhat-does-line-mean-in-smali-code-syntax-android-smali-code%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

                    Contact image not getting when fetch all contact list from iPhone by CNContact

                    count number of partitions of a set with n elements into k subsets

                    A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks