Fossil

Check-in [daaf9ee79c]
Login

Check-in [daaf9ee79c]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the backtrace output formatting to the log file so that it is easy to copy/paste the backtrace hex addresses into an "addr2line" command-line in order to get symbolic names.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: daaf9ee79c17f25d1d70506c1b9953f5fe5c71b0eea7321ef9a2000063ca0be8
User & Date: drh 2024-03-29 11:27:22.908
Context
2024-03-29
12:41
Create a separate "Log Menu" page that shows all of the available log files. ... (check-in: b28badb741 user: drh tags: trunk)
11:27
Update the backtrace output formatting to the log file so that it is easy to copy/paste the backtrace hex addresses into an "addr2line" command-line in order to get symbolic names. ... (check-in: daaf9ee79c user: drh tags: trunk)
2024-03-28
20:57
Fix to the "fossil git status" command as suggested by [forum:/forumpost/e15631f21e16f0b6|forum post e15631f21e16f0b6]. ... (check-in: 0028303999 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/main.c.
1571
1572
1573
1574
1575
1576
1577







1578

1579
1580
1581
1582
1583
1584
1585
  size_t i;
  Blob out;
  size = backtrace(array, sizeof(array)/sizeof(array[0]));
  strings = backtrace_symbols(array, size);
  blob_init(&out, 0, 0);
  blob_appendf(&out, "Segfault during %s", g.zPhase);
  for(i=0; i<size; i++){







    blob_appendf(&out, "\n(%d) %s", i, strings[i]);

  }
  fossil_panic("%s", blob_str(&out));
#else
  fossil_panic("Segfault during %s", g.zPhase);
#endif
  exit(1);
}







>
>
>
>
>
>
>
|
>







1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
  size_t i;
  Blob out;
  size = backtrace(array, sizeof(array)/sizeof(array[0]));
  strings = backtrace_symbols(array, size);
  blob_init(&out, 0, 0);
  blob_appendf(&out, "Segfault during %s", g.zPhase);
  for(i=0; i<size; i++){
    size_t len;
    const char *z = strings[i];
    if( i==0 ) blob_appendf(&out, "\nBacktrace:");
    len = strlen(strings[i]);
    if( z[0]=='[' && z[len-1]==']' ){
      blob_appendf(&out, " %.*s", (int)(len-2), &z[1]);
    }else{
      blob_appendf(&out, " %s", z);
    }
  }
  fossil_panic("%s", blob_str(&out));
#else
  fossil_panic("Segfault during %s", g.zPhase);
#endif
  exit(1);
}